示例#1
0
        /// <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);
        }
示例#2
0
 /// <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;
 }
示例#3
0
 /// <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;
 }
示例#4
0
        /// <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);
        }
示例#5
0
        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;
        }
示例#6
0
        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);
        }