Example #1
0
 private void Init(string algorithmName)
 {
     if (string.Equals(MD5ManagedName, algorithmName, StringComparison.Ordinal))
         _algorithm = new MD5Managed();
     else
         throw new ArgumentOutOfRangeException(algorithmName, "Unsupported hashing algorithm");
 }
Example #2
0
        /// <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();
        }
Example #3
0
 public byte[] ComputeMD5Hash(Stream steam)
 {
     var hashed = new MD5Managed().ComputeHash(steam);
     return hashed;
 }
Example #4
0
 public byte[] ComputeMD5Hash(byte[] data)
 {
     var hashed = new MD5Managed().ComputeHash(data);
     return hashed;
 }
Example #5
0
 public byte[] ComputeMD5Hash(Stream steam)
 {
     MD5Managed md5 = new MD5Managed();
     byte[] hashed = md5.ComputeHash(steam);
     return hashed;
 }
Example #6
0
            public byte[] ComputeMD5Hash(byte[] data)
            {
                var hashed = new MD5Managed().ComputeHash(data);

                return(hashed);
            }
Example #7
0
 /// <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;
     }
 }
Example #8
0
        static byte[] GenerateHash(byte[] toHash)
        {
            MD5Managed md5 = new MD5Managed();

            return(md5.ComputeHash(toHash));
        }
Example #9
0
        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...");
            }
        }
Example #10
0
        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;
            }
        }