String과 System.Security.Cryptography.MD5를 사용하여 같은 문자열을 포함하는 파일에서 MD5 해시를 생성합니다. 그러나 해시 값은 다릅니다. 여기 MD5 해시가 FileStream과 문자열이 다른 이유 C#
문자열byte[] data = Encoding.ASCII.GetBytes("The quick brown fox jumps over the lazy dog");
byte[] hash = MD5.Create().ComputeHash(data);
return BitConverter.ToString(hash).Replace("-", "").ToLower();
을에서 생성하는 코드입니다 그리고 여기이 파일의 해시를 생성 할 때 코드입니다
internal static string CalculateFileHashTotal(string fileLocation)
{
using(var md5 = MD5.Create())
{
using (var stream = File.OpenRead(fileLocation))
{
byte[] b = md5.ComputeHash(stream);
stream.Close();
return BitConverter.ToString(b).Replace("-", "").ToLower();
}
}
}
문자열에서 해시가 정확한지, 그래서 파일의 해시가 약간의 추가 정보를 읽거나 전체 파일을 읽지 않는다고 가정합니다. Google에서 답변을 찾을 수 없습니다.
어떤 아이디어?
이, 해싱의 성능을 향상 (VAR 스트림 = 새로운 한 BufferedStream'같은 한 BufferedStream의 스트림을 포장하기 :
데이터의 시작 부분에 UTF-8 BOM을 추가하면 같은 해시를 줄 것이다 File.OpenRead (경로), 100000)' – Luuk