asp.net密码加密服务-创新互联

  1. 下载类库   Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.dll

    成都创新互联公司是一家专注于成都网站制作、网站设计与策划设计,太原网站建设哪家好?成都创新互联公司做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:太原等地区。太原做网站价格咨询:18982081108

               Microsoft.Practices.EnterpriseLibrary.Security.dll

              Microsoft.Practices.EnterpriseLibrary.Common

 2. web.config 配置

 
   


 
 
   
     
     
     
     
     
     
     
   

 

3.添加引用 类库

4.类 方法

  ///


   /// 哈希加密算法枚举
   ///

   public enum EnumHashProvider
   {
       ///
       /// MD5
       ///

       MD5CryptoServiceProvider = 1,
       ///
       /// RIPEMD160Managed
       ///

       RIPEMD160Managed,
       ///
       /// SHA1
       ///

       SHA1CryptoServiceProvider,
       ///
       /// SHA1Managed
       ///

       SHA1Managed,
       ///
       /// SHA256Managed
       ///

       SHA256Managed,
       ///
       /// SHA384Managed
       ///

       SHA384Managed,
       ///
       /// SHA512Managed
       ///

       SHA512Managed
   }

   ///


   /// 加密服务工具类
   ///

   public class CryptographyUtil
   {
       ///
       /// 根据随机抽取的加密算法和随机产生的散列字符串对源字符串进行加密
       ///

       /// 要加密的字符串
       /// 散列字符串
       /// 哈希加密算法提供器
       /// 加密后的字符串
       public static string GetEncryptedHashText(string plainText, out string saltText, out int hashProvider)
       {
           Random radom = new Random();
           int hashProviderType = radom.Next(1, 8);
           hashProvider = hashProviderType;
           saltText = CreateSaltText();
           plainText += saltText;
           string encryptedText = Cryptographer.CreateHash(((EnumHashProvider)hashProvider).ToString(), plainText);
           return encryptedText;
       }

       ///


       /// 比较某一字符串是否是某一加密字符串的源字符串
       ///

       /// 源字符串
       /// 加密后的字符串
       /// 加密用的散列值
       /// 哈希加密算法提供器
       /// true=源字符串和加密后的字符串一样;false=源字符串和加密后的字符串不一样
       public static bool CompareHashText(string plainText, string encryptedText, string saltText, int hashProviderType)
       {
           EnumHashProvider hashProvider = new EnumHashProvider();
           try
           {
               hashProvider = (EnumHashProvider)hashProviderType;
           }
           catch
           {
               return false;
           }
           bool matched = Cryptographer.CompareHash(hashProvider.ToString(), plainText + saltText, encryptedText);

           return matched;
       }

       ///
       /// 产生一个散列值
       ///

       ///
       private static string CreateSaltText()
       {
           byte[] bytSalt = new byte[32];
           RNGCryptoServiceProvider rng;

           rng = new RNGCryptoServiceProvider();

           rng.GetBytes(bytSalt);

           return Convert.ToBase64String(bytSalt);
       }
   }

 ///


       /// 用户名登录
       ///

       /// 用户名
       /// 用户密码
       /// 用户信息实体
       public tb_User UserLogin(string userLoginname, string userLogPassword)
       {
           tb_User dbclass = this.repository.UserLogin(userLoginname);
           if (dbclass == null)
           {
               return null;
           }
           if (!CryptographyUtil.CompareHashText(userLogPassword, dbclass.User_Password, dbclass.User_PasswordSalt, dbclass.User_PasswordFormat.Value))
           {
               return null;
           }
           return dbclass;
       }

   string user_Password;
           string user_PasswordSalt;
           int user_PasswordFormat;
           //密码加密
           user_Password = CryptographyUtil.GetEncryptedHashText(password, out user_PasswordSalt, out user_PasswordFormat);

           item.User_Password = user_Password;
           item.User_PasswordFormat = user_PasswordFormat;
           item.User_PasswordSalt = user_PasswordSalt;

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章题目:asp.net密码加密服务-创新互联
文章出自:http://scjbc.cn/article/jhdog.html

其他资讯