我有一个简单的代码来生成文件的校验和,以比较文件是否是新文件.
class Program { static void Main(string[] args) { using (var md5 = MD5.Create()) { using (var stream = File.OpenRead("output_log.txt")) { var checksum = BitConverter.ToString(md5.ComputeHash(stream)) .Replace("-","") .ToLower(); System.Diagnostics.Debug.WriteLine(checksum); Console.Write(checksum); } } } }
产出:
的Debug.WriteLine:
a488ada7ccdba73125a9e0447544867c
Console.Write:
a4??88??ad??a7??cc??db??a7??31??25??a9??e0??44??75??44??86??7c
解决方法
我不能肯定地说为什么但是在BitConverter线之外进行替换修复了它.
var checksum = BitConverter.ToString(md5.ComputeHash(stream)) .ToLower(); System.Diagnostics.Debug.WriteLine(checksum); checksum = checksum.Replace("-",""); Console.Write(checksum);
请参阅@Hans Passant对其工作原理的评论.摘要“”实际上用两个unicode字符替换了字符.
控制台输出:
d41d8cd98f00b204e9800998ecf8427e
@H_404_60@
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。