【发布时间】:2016-08-26 02:28:14
【问题描述】:
我正在比较两个字符串,一个是我从服务器收到的包含 32 个字符的字符串,另一个是我使用以下代码计算的:
string getMd5(string fileName)
{
using (var md5 = MD5.Create())
{
using (var stream = File.OpenRead(fileName))
{
return BitConverter.ToString(md5.ComputeHash(stream)).Replace("-", "").ToLower();
}
}
}
问题是,即使两个字符串看起来相同,比较也会失败,因为上面函数返回的字符串包含的字符比我收到的要多。请看附图:
那么,我该如何解决呢?
谢谢。
【问题讨论】:
-
它看起来不像包含更多字符。你怎么知道的?
-
@FirstStep 你能看到
currentMd5.Length吗?这怎么可能?您看到并数了 32 个字符,但长度显示有 62 个,因此比较失败。 -
@FirstStep,请参阅随附的手表图片中的
Length值 -
为什么要将输出转换为字符串而不是直接比较
byte[]? -
@FirstStep 假设不同的字符在末尾,而不是在开头或中间。