【问题标题】:SHA1 hash questionSHA1 哈希问题
【发布时间】:2010-02-26 13:54:00
【问题描述】:

我有这个方法来散列一个字符串:

 byte[] buffer = enc.GetBytes(text);
 SHA1CryptoServiceProvider cryptoTransformSHA1 =
                new SHA1CryptoServiceProvider();
 string hash = BitConverter.ToString(
                cryptoTransformSHA1.ComputeHash(buffer)).Replace("-", "");

 return hash;

我的问题是:

对于同一个字符串,生成的哈希值是否总是相同的?

几天前我对一个字符串进行了哈希处理,现在它似乎产生了另一个哈希值,但我不确定。

【问题讨论】:

  • 你没有加密任何东西,你正在散列:en.wikipedia.org/wiki/Hash_function
  • 您无法通过提供的代码来判断...当您将 enc 从一种编码更改为另一种编码时,哈希也会发生变化。但我认为 enc 是固定的 --> Ignacios 回答。

标签: c# sha1


【解决方案1】:

是的,相同的明文字符串每次都会散列到相同的 SHA1 散列。

【讨论】:

    【解决方案2】:

    只要字节相同,您最终将得到完全相同的哈希值。请注意,特殊字符和空格也是字节。

    Wikipedia Link

    【讨论】:

      【解决方案3】:

      ID 取决于!如果您使用相同的编码,相同的纯文本字符串将散列到相同的 SHA1 散列!使用不同的 Encoding 会导致不同的 SHA1 哈希。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-15
        • 2020-03-04
        • 1970-01-01
        • 2021-04-11
        • 2017-10-30
        • 2018-11-26
        • 1970-01-01
        • 2011-07-24
        相关资源
        最近更新 更多