gpt4 book ai didi

SHA256 代与此文件的文件和内容不同

转载 作者:行者123 更新时间:2023-12-04 21:09:19 32 4
gpt4 key购买 nike

我使用在线 SHA256 转换器来计算给定文件的哈希值。在那里,我看到了我不明白的效果。

出于测试目的,我想计算一个非常简单文件的哈希值。我将它命名为“test.txt”,它唯一的内容是字符串“abc”,后跟一个新行(我只是按回车键)。

现在,当我将“abc”和换行符放入 SHA256 生成器时,我得到了哈希值

edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cb

但是当我将完整的文件放入同一个生成器时,我得到了哈希值

552bab6864c7a7b69a502ed1854b9245c0e1a30f008aaa0b281da62585fdb025

差异从何而来?我使用了这个生成器(实际上,我尝试了几个,它们总是产生相同的结果):

https://emn178.github.io/online-tools/sha256_checksum.html

请注意,没有换行符就不会出现这种不同。如果文件只包含字符串“abc”,则散列是

ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad

对于文件以及仅针对内容。

最佳答案

正如我在评论中所指出的,差异是由换行符在不同操作系统中的表示方式引起的(请参阅详细信息 here ):

  • 在 UNIX 和类 UNIX 系统上,换行符由换行符 ( \n ) 表示。
  • 在 DOS 和 Windows 系统上,换行符由回车符后跟换行符 ( \r\n ) 表示。

  • 比较以下两个命令及其输出,对应于您问题中的 SHA256 值:
    echo -en "abc\n" | sha256sum
    edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cb

    echo -en "abc\r\n" | sha256sum
    552bab6864c7a7b69a502ed1854b9245c0e1a30f008aaa0b281da62585fdb025

    关于SHA256 代与此文件的文件和内容不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56472780/

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