【问题标题】:C# - Converting a String with Length 128 to a 64 bytes array to compare with SHA-512's 64 bytes arrayC# - 将长度为 128 的字符串转换为 64 字节数组以与 SHA-512 的 64 字节数组进行比较
【发布时间】:2013-12-14 00:57:00
【问题描述】:

我正在尝试获取一个 64 字节的哈希密码数组,以便将其与加盐和哈希 (SHA-512) 密码进行匹配。

我目前正在使用 VARCHAR(128) 将散列密码存储在 MySql 数据库中。

所以我在数据库中存储例如 406f2c25c99fa980992a9704878072485bcca1316b46b3d6a05bbe468a87a8bda82db6ea44a95746d96519a296463175c8a584e49b86fpd94bdd4a542ac3。

当我使用 C# 将该值作为字符串检索时,它的长度为 128。 我已经尝试了几种编码来从该字符串中获取字节数组,但我从来没有得到一个 64 字节的编码,甚至尝试将它与加盐和散列密码的 64 字节数组进行匹配。

在使用 SHA-256 时遇到同样的问题(无法获得 32 字节数组)。

非常感谢!

【问题讨论】:

    标签: c# security hash bytearray sha


    【解决方案1】:

    SHA-512 返回一个 64 字节的值是正确的。但是,在您的数据库中,您存储的是该 64 字节值的十六进制字符串表示,这需要两倍的字节数。

    例如,假设您有一个值为 255 的字节。作为无符号整数,255 可以存储在一个字节中,但十六进制字符串表示 (FF) 需要 2 个字节。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多