以下のハッシュデータを印刷したいと思います。どうすればいいですか?
unsigned char hashedChars[32];
SHA256((const unsigned char*)data.c_str(),
data.length(),
hashedChars);
printf("hashedChars: %X\n", hashedChars); // doesn't seem to work??
16進形式指定子は単一の整数値を想定していますが、代わりにchar
の配列を提供しています。 char
値を16進値として個別に出力する必要があります。
printf("hashedChars: ");
for (int i = 0; i < 32; i++) {
printf("%x", hashedChars[i]);
}
printf("\n");
C++を使用しているので、cout
の代わりにprintf
を使用することを検討する必要があります(C++ではより慣用的です。
cout << "hashedChars: ";
for (int i = 0; i < 32; i++) {
cout << hex << hashedChars[i];
}
cout << endl;