我正在尝试使用SHA1散列文件。结果如下所示:B7-DB-B9-93-E7-2F-6F-EB-6D-CD-CC-A8-DE-D2-F1-01-6E-8A-53-BC
如何将短信替换为空字符串或只删除它们?
代码试图替换破折号,但似乎它没有改变任何东西,破折号仍然存在。
using (HashAlgorithm hashSHA1 = new SHA1Managed())
using (Stream file = new FileStream(ofdBrowse.FileName, FileMode.Open, FileAccess.Read))
{
byte[] hash = hashSHA1.ComputeHash(file);
txtSHA1.Text = BitConverter.ToString(hash).Replace("-", "");
}
答案 0 :(得分:3)
破折号和连字符之间的区别? http://msdn.microsoft.com/en-us/library/3a733s97.aspx
不太确定。只是我在黑暗中的猜测。
答案 1 :(得分:2)
您提供的代码肯定删除破折号。简短但完整的程序来证明:
using System;
using System.IO;
using System.Security.Cryptography;
class Test
{
static void Main(string[] args)
{
using (HashAlgorithm hashSHA1 = new SHA1Managed())
{
// Actual data doesn't matter
using (Stream data = new MemoryStream())
{
byte[] hash = hashSHA1.ComputeHash(data);
Console.WriteLine(BitConverter.ToString(hash).Replace("-", ""));
}
}
}
}
所以,问题的潜在原因:
Replace
调用很难真正猜出哪些(或其他任何东西)是问题,但那段代码不是......