gpt4 book ai didi

无法通过 openssl 以与 crypt、mkpasswd 或 openssl 通过 cmdline 相同的格式获取密码哈希

转载 作者:行者123 更新时间:2023-11-30 14:45:53 26 4
gpt4 key购买 nike

我需要通过 C 中的 openssl 库创建一个哈希密码。不幸的是,我无法获得预期的结果

这是我正在使用的代码:

unsigned char hash[SHA256_DIGEST_LENGTH];
SHA256_CTX sha256;
SHA256_Init(&sha256);
SHA256_Update(&sha256, "xxx", 3);
SHA256_Update(&sha256, "11111111", 8);
SHA256_Final(hash, &sha256);

for(int i = 0; i < SHA256_DIGEST_LENGTH; i++)
{
printf("%02x", hash[i]);
}

输出将是

57b2e9dd7f27e02ce026c1a40c7685b4658c2dff55e3a9de93186e545d1c4af1

但我预料

EDgBhRzUlXHcobBLtDfoWalyRFoSMnO1/q.s10aKSY7

因为这是 crypt lib 将通过 shell 生成的输出以及 mkpasswd 或 openssl 生成的输出。

参见:

mkpasswd -m sha-256 --salt=11111111 xxx
$5$11111111$EDgBhRzUlXHcobBLtDfoWalyRFoSMnO1/q.s10aKSY7

openssl passwd -5 -salt 11111111 xxx
$5$11111111$EDgBhRzUlXHcobBLtDfoWalyRFoSMnO1/q.s10aKSY7

printf("%s\n", crypt("xxx", "$5$11111111"));
// also prints $5$11111111$EDgBhRzUlXHcobBLtDfoWalyRFoSMnO1/q.s10aKSY7

我需要让它与 openssl 库一起工作。我创建哈希和盐的方法是完全错误的,还是这只是一个转储格式问题?

最佳答案

该算法不仅仅是简单的 SHA256 哈希。

作为引用,OpenSSL 实现可以在github 上找到。 (shacrypt(...))。

关于无法通过 openssl 以与 crypt、mkpasswd 或 openssl 通过 cmdline 相同的格式获取密码哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52699696/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com