gpt4 book ai didi

c - 在c中将时间戳散列到sha256校验和中

转载 作者:行者123 更新时间:2023-11-30 18:36:12 25 4
gpt4 key购买 nike

向那些在c...方面更有经验的人提出一个简单的问题

我想使用 openssl 中的函数计算当前操作发生时的 SHA256 校验和。我的代码包含以下内容:

time_t cur_time = 0;
char t_ID[40];
char obuf[40];
char * timeBuf = malloc(sizeof(char) * 40 + 1);

sprintf(timeBuf, "%s", asctime(gmtime(&cur_time)));
SHA256(timeBuf, strlen(timeBuf), obuf);
sprintf(t_ID, "%02x", obuf);

然而,当我在调试语句中打印出 t_ID 的值时,它看起来像“de54b910”。我在这里缺少什么?

  • 编辑以修复我在 malloc 方面的拼写错误,并表示我希望看到 sha256 校验和的摘要形式(十六进制)。

最佳答案

由于 obuf 是一个数组,打印它的值会导致它衰减为指针并打印存储该数组的内存地址的值。编写合理的代码来打印 256 位值。

也许是这样的:

for (int i = 0; i < 32; ++i)
printf("%02X", obuf[i]);

关于c - 在c中将时间戳散列到sha256校验和中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42544239/

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