【发布时间】:2016-12-18 06:12:43
【问题描述】:
在使用 OpenSSL 学习一些基础知识时,我遇到了 create an SHA256 hash 的代码:
using namespace std;
#include <openssl/sha.h>
string sha256(const string str)
{
unsigned char hash[SHA256_DIGEST_LENGTH];
SHA256_CTX sha256;
SHA256_Init(&sha256);
SHA256_Update(&sha256, str.c_str(), str.size());
SHA256_Final(hash, &sha256);
stringstream ss;
for(int i = 0; i < SHA256_DIGEST_LENGTH; i++)
{
ss << hex << setw(2) << setfill('0') << (int)hash[i];
}
return ss.str();
}
谁能尽可能简单地解释一下ss << hex << setw(2) << setfill('0') << (int)hash[i];在这个具体示例中做了什么,同时仍然有效地解释它?
由于我似乎无法理解这些答案,因此它们无助于理解我的具体 sn-p:
【问题讨论】:
-
你知道每个manipulators 自己做什么吗?您是否尝试在打印到
std::cout时尝试使用它们? -
那么您可能应该find a good beginners book,因为它应该解释这些操纵器以及它们的作用。你也可以输出到
cout而不是ss,看看你得到了什么。最重要的是,实验! :) -
@Someprogrammerdude 我不知道,我对 std:: 几乎一无所知,因为我只是从 C 切换到 c++,而且我很难一次学习所有内容并理解文档