Ich versuche, zu vergleichen und Spiel Hashes:Vergleichen Hashes in c
#include <stdio.h>
#include <string.h>
#include "sha256.h"
int main()
{
unsigned char password[]={"abc"}, gen_hash[32];
SHA256_CTX ctx;
sha256_init(&ctx);
sha256_update(&ctx,password,strlen(password));
sha256_final(&ctx,gen_hash);
unsigned char orig_hash[] = {"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"};
if(strcmp(orig_hash, gen_hash) == 0)
{
printf("%s\n", "match");
}
return 0;
}
Aber wenn ich beide Hashes zu vergleichen, sie sind nicht das gleiche. Weiß jemand zufällig warum? Ich dachte beide Variablen sind gleich, aber sind sie nicht?
empfehlen die C++ Tag fallen, Err, ... nie – user4581301
dagegen Ich würde sagen, die 'orig_hash' ist viel länger als 32 Zeichen ... –
Sind Sie absolut sicher, dass 'gen_hash' eine Null-terminierte Zeichenkette ist und somit mit' strcmp' verwendbar ist – user4581301