0

这个简单的代码接受用户输入并将给定字符串的 sha256 打印到标准输出。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/sha.h>

int main()
{
 SHA256_CTX context;
 unsigned char md[SHA256_DIGEST_LENGTH];
 char *input;
 printf("Watta hash: ");
 scanf("%m[^\n]%*c", &input);
 size_t length = strlen((const char*)input);
 int i;
 SHA256_Init(&context);
 SHA256_Update(&context, (unsigned char*)input, length);
 SHA256_Final(md, &context);
 for(i=0; i<SHA256_DIGEST_LENGTH; i++){
   printf("%02x", md[i]);
 }
 printf("\n");
 free(input);
 return 0;
}

我的问题是:如何在这个哈希中添加盐?

4

1 回答 1

2

SHA256_Update()在数据是所需盐的位置添加第二个调用。

于 2012-09-03T13:31:28.633 回答