/// <summary> /// 创建Hash算法 /// </summary> /// <param name="hashProvider"></param> /// <returns></returns> internal static HashAlgorithm CreateHashAlgorithm(EnumHashProvider hashProvider) { HashAlgorithm hashAlgorithm = null; switch (hashProvider) { case EnumHashProvider.MD5CryptoServiceProvider: hashAlgorithm = new MD5CryptoServiceProvider(); break; //case EnumHashProvider.RIPEMD160Managed: //not exist in .net core // hashAlgorithm = RIPEMD160Managed(); // break; case EnumHashProvider.SHA1CryptoServiceProvider: hashAlgorithm = new SHA1CryptoServiceProvider(); break; case EnumHashProvider.SHA1Managed: hashAlgorithm = new SHA1Managed(); break; case EnumHashProvider.SHA256Managed: hashAlgorithm = new SHA256CryptoServiceProvider(); break; case EnumHashProvider.SHA384Managed: hashAlgorithm = new SHA384CryptoServiceProvider(); break; case EnumHashProvider.SHA512Managed: hashAlgorithm = new SHA512CryptoServiceProvider(); break; } return(hashAlgorithm); }
/// <summary> /// 创建Hash算法 /// </summary> /// <param name="hashProvider"></param> /// <returns></returns> internal static HashAlgorithm CreateHashAlgorithm(EnumHashProvider hashProvider) { HashAlgorithm hashAlgorithm = null; switch (hashProvider) { case EnumHashProvider.MD5CryptoServiceProvider: hashAlgorithm = new MD5CryptoServiceProvider(); break; case EnumHashProvider.RIPEMD160Managed: hashAlgorithm = new RIPEMD160Managed(); break; case EnumHashProvider.SHA1CryptoServiceProvider: hashAlgorithm = new SHA1CryptoServiceProvider(); break; case EnumHashProvider.SHA1Managed: hashAlgorithm = new SHA1Managed(); break; case EnumHashProvider.SHA256Managed: hashAlgorithm = new SHA256CryptoServiceProvider(); break; case EnumHashProvider.SHA384Managed: hashAlgorithm = new SHA384CryptoServiceProvider(); break; case EnumHashProvider.SHA512Managed: hashAlgorithm = new SHA512CryptoServiceProvider(); break; } return hashAlgorithm; }
/// <summary> /// 计算Hash /// </summary> /// <typeparam name="T"></typeparam> /// <param name="func"></param> /// <param name="hashProvider"></param> /// <param name="plainText"></param> /// <returns></returns> public static string ComputeHash(EnumHashProvider hashProvider, string plainText) { var provider = CreateHashAlgorithm(hashProvider); var hashedBytes = provider.ComputeHash(Encoding.UTF8.GetBytes(plainText)); var hashedText = Convert.ToBase64String(hashedBytes); return hashedText; }
/// <summary> /// 计算Hash /// </summary> /// <typeparam name="T"></typeparam> /// <param name="func"></param> /// <param name="hashProvider"></param> /// <param name="plainText"></param> /// <returns></returns> public static string ComputeHash(EnumHashProvider hashProvider, string plainText) { var provider = CreateHashAlgorithm(hashProvider); var hashedBytes = provider.ComputeHash(Encoding.UTF8.GetBytes(plainText)); var hashedText = Convert.ToBase64String(hashedBytes); return(hashedText); }
public static string GetEncryptedHashText(string plainText, out string saltText, out EnumHashProvider hashProvider) { Random random = new Random(); int hashProviderType = random.Next(1, 7); hashProvider = (EnumHashProvider)hashProviderType; saltText = CreateSaltText(); plainText += saltText; string encryptedText = ComputeHash(hashProvider, plainText); return encryptedText; }
public static string GetEncryptedHashText(string plainText, out string saltText, out EnumHashProvider hashProvider) { Random random = new Random(); int hashProviderType = random.Next(1, 7); hashProvider = (EnumHashProvider)hashProviderType; saltText = CreateSaltText(); plainText += saltText; string encryptedText = ComputeHash(hashProvider, plainText); return(encryptedText); }