gpt4 book ai didi

c - SHA-1、RFC3174 和 RFC4634

转载 作者:太空宇宙 更新时间:2023-11-03 23:35:29 25 4
gpt4 key购买 nike

对社区来说是新手,但对编程来说不是新手。

我一直在尝试启动/运行哈希函数的集合,我成功了。但是,我发现了一些奇怪的结果,并且还无法确定。 RFC4634 包含 SHA-1 和 SHA-2 系列的 C 实现,它也可以接受传递的文件以进行哈希处理。 RFC3174 包含 C 实现,但不处理文件流。我一直在使用 RFC4634 中的 C 实现来验证文件,但是当我将它们与 SHA-1 提供的哈希值进行比较时,验证过程返回了不相似的结果。

知道原因是什么吗?

最佳答案

您是否检查过您是以 ASCII 还是二进制模式打开文件的?可以在计算哈希之前执行行尾转换。

更新:

我刚刚编译了 RFC4634 shatest 并尝试了一个示例文本文件。只要没有换行符,所有工具都同意。插入换行符后,结果取决于:如果文本文件使用 CR 和 LF(DOS 模式),则 shatest 会产生不同的结果。如果行尾只有 LF (UNIX),它仍然与其他工具一致。

更新 2:

在RFC4634的文件shatest.c中,在函数hashfile(...)中,设置fopen为二进制模式:

FILE *hashfp = (strcmp(hashfilename, "-") == 0) ? stdin :
fopen(hashfilename, "rb");
/* ^ HERE */

关于c - SHA-1、RFC3174 和 RFC4634,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4757655/

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