【发布时间】:2021-03-18 02:27:43
【问题描述】:
我正在尝试生成哈希,但我不断得到不同的结果。
我的实现:
Pizza is great! -> 86b01bb0cf966fec8f4864103538359cf5d9b6387ef710e02413a11dcce2e489
在线生成器:
Pizza is great! -> 5f5c21c95db335c9e2cedd132e294102a8af08c1ddf81f41c9d54c421cfca1da
我正在使用的代码:
我不能在这个项目中使用 OpenSSL,所以我使用这个 SHA256 实现:sha256.csha256.h
int GenerateKey() {
unsigned char message[] = "Pizza is great!";
unsigned char hash[SHA256_BLOCK_SIZE];
SHA256_CTX ctx;
sha256_init(&ctx);
sha256_update(&ctx, message, sizeof(message));
sha256_final(&ctx, hash);
printf("SHA256 KEY\n\n\n\n\n");
int i;
for (i = 0; i < SHA256_BLOCK_SIZE; i++) {
printf("%02x", hash[i]);
}
printf("\n\n\n\n\n");
return 0;
}
【问题讨论】:
-
如果改用
sha256_update(&ctx, message, strlen(message));会怎样?
标签: c encryption cryptography