private void Init(string algorithmName) { if (string.Equals(MD5ManagedName, algorithmName, StringComparison.Ordinal)) _algorithm = new MD5Managed(); else throw new ArgumentOutOfRangeException(algorithmName, "Unsupported hashing algorithm"); }
/// <summary> /// Generates md5 digest. /// </summary> /// <param name="parameters"></param> /// <returns></returns> public static string DoDigest(string parameters) { MD5Managed md5 = new MD5Managed(); md5.Initialize(); byte[] hash = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(parameters)); int len = hash.Length; StringBuilder sb = new StringBuilder(len << 1); for (int i = 0; i < len; i++) { sb.Append(((hash[i] & 0xf0) >> 4).ToString("X")); sb.Append((hash[i] & 0x0f).ToString("X")); } return sb.ToString(); }
public byte[] ComputeMD5Hash(Stream steam) { var hashed = new MD5Managed().ComputeHash(steam); return hashed; }
public byte[] ComputeMD5Hash(byte[] data) { var hashed = new MD5Managed().ComputeHash(data); return hashed; }
public byte[] ComputeMD5Hash(Stream steam) { MD5Managed md5 = new MD5Managed(); byte[] hashed = md5.ComputeHash(steam); return hashed; }
public byte[] ComputeMD5Hash(byte[] data) { var hashed = new MD5Managed().ComputeHash(data); return(hashed); }
/// <summary> /// Implements the Dispose pattern /// </summary> /// <param name="disposing">Whether this object is being disposed via a call to Dispose /// or garbage collected.</param> protected virtual void Dispose(bool disposing) { var disposable = _algorithm as IDisposable; if (disposing && disposable != null) { disposable.Dispose(); _algorithm = null; } }
static byte[] GenerateHash(byte[] toHash) { MD5Managed md5 = new MD5Managed(); return(md5.ComputeHash(toHash)); }
static void Test2(int count) { byte[] bytes = new byte[count]; for (int idx = 0; idx < count; idx += 16) Array.Copy(Guid.NewGuid().ToByteArray(), 0, bytes, idx, Math.Min(16, count - idx)); MD5 md5dotNet = new MD5CryptoServiceProvider(); md5dotNet.Initialize(); MD5Managed md5m = new MD5Managed(); md5m.Initialize(); byte[] result1 = md5dotNet.ComputeHash(bytes); byte[] result2 = md5m.ComputeHash(bytes); if (!CompareBytes(result1, result2)) { count.GetType(); //throw new Exception("Bug in MD5Managed..."); } }
public static bool sdadsa2(byte[] source0, byte[][] sourceRest) { var source = new[] { source0 }.Concat(sourceRest.Where(x => x is not null && x.Length > 0)).ToArray(); var refImpl = new MD5Digest(); var refResults = new List <string>(); var refResBuffer = new byte[16]; byte[] whole = Join(source); { refImpl.BlockUpdate(whole, 0, whole.Length); var d = refImpl.DoFinal(refResBuffer, 0); Debug.Assert(d == refResBuffer.Length); refResults.Add(refResBuffer.ToHexString()); } for (int i = 1; i <= source.Length; i++) { var tt = Join(source.Take(i)); refImpl.BlockUpdate(tt, 0, tt.Length); var d = refImpl.DoFinal(refResBuffer, 0); Debug.Assert(d == refResBuffer.Length); refResults.Add(refResBuffer.ToHexString()); } Debug.Assert(refResults.First() == refResults.Last()); var results = new List <string>(); var impl = MD5Managed.Create(); try { { impl.TransformFinalBlock(whole, 0, whole.Length); results.Add(impl.Hash.ToHexString()); } for (int i = 1; i <= source.Length; i++) { var sss = source.Take(i).ToArray(); var t = 0L; foreach (var item in sss.Take(i - 1)) { t += impl.TransformBlock(item, 0, item.Length, null, default); } t += impl.TransformFinalBlock(sss.Last(), 0, sss.Last().Length).Length; results.Add(impl.Hash.ToHexString()); if (i == source.Length) { Debug.Assert(whole.Length == t); } } var r = results.SequenceEqual(refResults); if (!r) { return(r); } return(r); } catch (Exception ex) { throw; } }