我正在尝试获取64字节的哈希密码数组,以便我可以将其与盐渍和哈希(SHA-512)密码相匹配。
我目前使用VARCHAR(128)将散列密码存储在MySql数据库中。
所以我在数据库中存储 406f2c25c99fa980992a9704878072485bcca1316b46b3d6a05bbe468a87a8bda82db6ea44a95746d96519a296463175c8a584e49b86d94bd4a542ac03fb6dd7 。
当我使用C#将该值检索为String时,其长度为128。 我已经尝试了几个Encodings来从该字符串中获取字节数组,但我从来没有得到一个64字节,甚至尝试将它与盐渍和散列密码的64字节数组匹配。
与SHA-256有同样的问题(无法获得32字节数组)。
非常感谢!
答案 0 :(得分:0)
你是对的,SHA-512返回64字节的值。但是,在您的数据库中,您要存储该64字节值的十六进制字符串表示,这需要两倍的字节。
例如,考虑具有值为255的单个字节的情况。作为无符号整数,255可以存储在一个字节中,但十六进制字符串表示(FF)需要2个字节。