2016-03-29 14:38:07 +00:00
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Security.Cryptography;
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
|
|
|
|
namespace CodeImp.DoomBuilder
|
|
|
|
|
{
|
|
|
|
|
public static class MD5Hash
|
|
|
|
|
{
|
|
|
|
|
private static MD5 hasher = MD5.Create();
|
|
|
|
|
|
|
|
|
|
public static string Get(Stream stream)
|
|
|
|
|
{
|
2016-12-22 00:03:58 +00:00
|
|
|
|
// Rewind the stream
|
|
|
|
|
stream.Position = 0;
|
|
|
|
|
|
2016-03-29 14:38:07 +00:00
|
|
|
|
// Check hash
|
|
|
|
|
byte[] data = hasher.ComputeHash(stream);
|
|
|
|
|
|
2016-12-22 00:03:58 +00:00
|
|
|
|
// Rewind the stream again...
|
2016-03-29 14:38:07 +00:00
|
|
|
|
stream.Position = 0;
|
|
|
|
|
|
|
|
|
|
// Create a new Stringbuilder to collect the bytes and create a string.
|
|
|
|
|
StringBuilder hash = new StringBuilder();
|
|
|
|
|
|
|
|
|
|
// Loop through each byte of the hashed data and format each one as a hexadecimal string.
|
|
|
|
|
for(int i = 0; i < data.Length; i++) hash.Append(data[i].ToString("x2"));
|
|
|
|
|
|
|
|
|
|
return hash.ToString();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|