using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security.Cryptography; using Aitex.Core.RT.Log; namespace Aitex.Core.Utilities { public class Md5Helper { /// /// md5 string compare /// /// /// /// public static bool VerifyMd5Hash(string input, string hash) { string hashOfInput = GetMd5Hash(input); StringComparer comparer = StringComparer.OrdinalIgnoreCase; if (0 == comparer.Compare(hashOfInput, hash)) return true; return false; } /// /// get md5 string /// /// /// public static string GetMd5Hash(string input) { MD5 md5Hasher = MD5.Create(); byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input)); StringBuilder sBuilder = new StringBuilder(); for (int i = 0; i < data.Length; i++) { sBuilder.Append(data[i].ToString("x2")); } return sBuilder.ToString(); } public static string GenerateDynamicPassword(string serialNum) { try { string genString = "promaxy" + serialNum + DateTime.Now.ToString("yyyyMMdd"); string hash = Md5Helper.GetMd5Hash(genString); return hash.Substring(0, 8); } catch (Exception ex) { LOG.Write(ex); return ""; } } } }