2016-03-27 1 views
0

Je suis en train d'exécuter Keccak 224 avec la bibliothèque officielle . Malheureusement, je reçois un mauvais hachage de la fonction. Je doute que ce soit la faute de la bibliothèque, plutôt que je fasse quelque chose de mal.Keccak mauvaise sortie

C'est ce que je suis en train:

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; 

Le hachage correct pour "abc" avec SHA-3-224 (Keccak) devrait être:

e642824c3f8cf24a d09234ee7d3c766f c9a3a5168d0c94ad 73b46fdf

Mais Je n'ai que des bêtises de cette façon d'appeler la bibliothèque. Qu'est-ce que je fais de mal? Un petit exemple serait génial, ce qui m'explique comment je peux atteindre le résultat attendu et ce que je faisais de mal.

+0

Essayez-vous d'utiliser Keccak 224 ou 224 SHA-3? Ils sont très légèrement différents. –

+0

SHA3 224. Le hachage de sortie est-il différent l'un de l'autre? –

+0

Oui, ils utilisent des constantes légèrement différentes. –

Répondre

1

Avez-vous pris en compte le caractère nul à la fin?

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