gpt4 book ai didi

C: 使用 crypt(3) 实现 Sha512 加密

转载 作者:太空宇宙 更新时间:2023-11-04 02:06:36 26 4
gpt4 key购买 nike

正如标题所说,我想用 C 函数 crypt(3) 实现一个简单的 Sha512 加密。

我几乎从 GNU 复制了示例代码,尽管我知道 salt 计算不是很好。此外,我将 $1$ 更改为 $6$,因为 crypt 的联机帮助页说这将创建一个 SHA512 哈希。

无论如何,输出对我来说似乎很奇怪,所以我想问一下我的代码是否有任何问题:

这几乎就是函数:

static char* hashStr(char *str) {
unsigned long seed[2];
char salt[] = "$6$........";
const char *const seedchars =
"./0123456789ABCDEFGHIJKLMNOPQRST"
"UVWXYZabcdefghijklmnopqrstuvwxyz";

seed[0] = time(NULL);
seed[1] = getpid() ^ (seed[0] >> 14 & 0x30000);

// Turn it into printable characters from `seedchars'.
for (int i = 0; i < 8; i++) {
salt[3+i] = seedchars[(seed[i/5] >> (i%5)*6) & 0x3f];
}
return crypt(str, salt);
}

下面是一些输出:

Bro  -> $6$9AcWGmwG$5faOmA7QpXQ/MMmbFAT085HraONeaMYlTcBg09WmQUpSI.PkcrcDQiXCetyjuIK3sr3H5cIFyxHD.fywr9UfY/

Homie -> $6$BAcWGnwG$KUPLOdpa8QgF.cVljBXYl62lL9zejDW/ZWENUoC90jO4NinNc1Itk7Z1Zo3myogmHR/YPwoc2cqfjBL0cf.Ht0

hey -> $6$IAcWGowG$47WGhO6Hco9DOc0rnxu/KEttLvjv4wH6vJX8qj6hALr0Wa1/YQb0JETEcRgpe9.cPvwOBjQduLZn17gwSXM86.

让我怀疑输出是否合法的原因是每次开头都有 &6&。

最佳答案

如你所见here地穴(3)返回:

$id$salt$encrypted

这就是为什么你得到 $6$8chars$...

关于C: 使用 crypt(3) 实现 Sha512 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20058656/

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