2016-03-27 20 views
0

公式ライブラリでKeccak 224を実行しようとしています。 残念ながら、私は関数から間違ったハッシュを取得します。 私はそれが図書館の過ちであるとは思っていません。むしろ私は間違ったことをしています。Keccakの出力が正しくない

これは私がしようとしていますものです:SHA-3から224(Keccak)と "ABC" の正しいハッシュがどうあるべき

unsigned char input[] = "abc", output[168]; 
const unsigned long long int inputByteLen = sizeof(input); 

FIPS202_SHA3_224(input, inputByteLen, output); 

std::stringstream stream; 
for (unsigned int i = 0; i < sizeof(output); i++) { 
    stream << std::hex << static_cast<short>(output[i]); 
} 
cout << stream.str() << endl; 

e642824c3f8cf24a d09234ee7d3c766f c9a3a5168d0c94ad 73b46fdf

しかし、私はライブラリを呼び出すこの方法からナンセンスになるだけです。 私は何が間違っていますか? 小さな例は、私がどのようにして期待される結果を達成することができ、私が間違っていたかを説明する素晴らしいものです。

+0

あなたはKeccak 224またはSHA3 224を使用しようとしていますか?彼らは非常にわずかに異なります。 –

+0

SHA3 224.出力ハッシュは互いに異なっていますか? –

+0

はい、わずかに異なる定数を使用します。 –

答えて

1

最後にヌル文字を考慮しましたか?

const unsigned long long int inputByteLen = sizeof(input) - 1;

関連する問題