【发布时间】:2021-11-14 13:59:09
【问题描述】:
使用 F#,我正在尝试编写一个函数来计算任何给定字符串的 SHA256 哈希值。当我将我的函数生成的哈希值与本网站 (https://xorbin.com/tools/sha256-hash-calculator) 生成的哈希值进行比较时,我的哈希长度始终小于 64。经过仔细检查,我注意到我的哈希省略了一些 0 值。我怀疑我对字符串的编码方式有些问题,但我不确定。关于导致问题的原因以及如何解决问题的任何想法?
函数如下:
open System.Security.Cryptography
open System.Text
let calculateHash (inputString: string) =
Encoding.UTF8.GetBytes(inputString)
|> (new SHA256Managed()).ComputeHash
|> Seq.iter (printf "%x")
printfn ""
例如,这里是字符串“Test”的哈希:
网站生成:
532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25
我的函数生成:
532eaabd957488dbf76b9b8cc0832c20a6ec113d68229955d7a6ef345e25
【问题讨论】: