56

MD5ハッシュの結果をコンソールに出力しようとしていますが、ほとんどの部分で機能しています。正確さを確保するために、オンラインのMD5計算機を使用して結果を比較しました。ほとんどの文字は同じですが、私の中にはいくつか欠けているものがあり、それらはすべて先行ゼロです。

説明させてください。結果は16バイトのunsignedchar*です。これらの各バイトを1つずつ印刷します。各バイトは2文字を画面に出力します。ただし、2つのうち最初の文字がゼロの場合、ゼロは出力されません。

printk("%x", result);

結果はunsignedchar*型です。適切にフォーマットしていますか、それとも何かが足りませんか?

4

2 に答える 2

135

を使用し"%02x"ます。

2つは、出力を常に(少なくとも)2文字幅にする必要があることを意味します。

ゼロは、パディングが必要な場合、スペースの代わりにゼロを使用することを意味します。

于 2012-08-21T20:58:29.723 に答える
4

resultはポインタです。ループを使用してすべての数字を出力します。

int i;
for (i = 0; i < 16; i++) {
   printf("%02x", result[i]);
}
于 2012-08-21T20:58:51.720 に答える