[英]md5 hash using hashFunction c#
我有以下代码:
...
private void bBrowse_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string FileName = ofd.FileName;
tbKeyFile.Text = FileName;
}
if (!String.IsNullOrEmpty(tbKeyFile.Text))
{
FileStream fs = new FileStream(tbKeyFile.Text, FileMode.Open);
MD5 hashFunction = MD5.Create();
byte[] computedHashCode = hashFunction.ComputeHash(fs);
string HashInString = Convert.ToBase64String(computedHashCode);
lHash.Text = HashInString;
}
}
...
但这不是在计算md5哈希值。 它正在计算SHA1校验和。 我做错了什么?
正如CodesInChaos所说: MD5.ComputeHash()
返回base64中的值。 您必须自己将其转换为HEX格式(当然,如果需要的话)。 如何实现它的示例可以在以下示例中找到 :
string HashInString = BitConverter.ToString(computedHashCode ).Replace("-", "");
提供的示例是正确的:
Base64
M1UOF9zlCe+LwCfDNcWGPw==
等于33550e17dce509ef8bc027c335c5863f
HEX。 使用Base64到Hex Converter进行检查!
输入:213441dasses输出:M1UOF9zlCe + LwCfDNcWGPw ==预期输出:33550e17dce509ef8bc027c335c5863f
您的预期输出是十六进制字符串,而实际输出不是。 您当前正在将哈希转换为基于64的字符串,这显然不是您想要的。
有关如何从哈希返回期望的十六进制字符串的信息,请参见此答案 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.