问题描述
我正在尝试用salt加密哈希。
在命令行中,我发现使用下面的命令将正确的哈希写入影子文件中。
openssl passwd -6-盐abcd适用 $ 6 $ abcd $ vIWAp1OzuGuo376cRkZ5DXcgI8KIlnUibsk.iydtfCFqb9okOz.S70Ysu7.qRRg9Me5XwAyTjkZBQJXiIxwpL /
然后我尝试使用openssl(How to convert a raw 64-byte binary to Hex or ASCII in C)在C语言中获取它。
#include <openssl/sha.h>
#include <stdio.h>
#include <string.h>
int main() {
char data[] = "abcdapple";
unsigned char hash[SHA512_DIGEST_LENGTH*2+1];
SHA512((unsigned char *)&data,strlen(data),(unsigned char *)&hash);
char buffer[SHA512_DIGEST_LENGTH*2+1];
for(int i =0; i < SHA512_DIGEST_LENGTH; ++i)
sprintf(&buffer[i*2],"%02x",(unsigned int)hash[i]);
printf("digest: %s\n",buffer);
printf("\n");
}
但是生成的哈希是ea1d5a8b11297d20f954a3ab15092d21b733484b2eb9b7226b2b138639f0df30627774945458a774eb279cd279d83d2e977a2bc5599606d6a9a3b2f075f9b1895ecd,与正确的事物不同。
我认为我用盐不好。似乎也存在根本问题。 我不能使用C盐实现加密程序吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)