现在的位置: 首页 > 综合 > 正文

简单的加密和解密

2013年03月05日 ⁄ 综合 ⁄ 共 1132字 ⁄ 字号 评论关闭

 

1、   关于用户密码的加密

这种情况一般采用散列来进行加密并以Base64编码存入数据库,然后验证用户密码时,只需要对用户输入进行再次加密、编码,对比数据库中的值即可

 

有两种选择SHA1MD5

 

byte[] original = System.Text.Encoding.UTF8.GetBytes("test");

SHA1CryptoServiceProvider hashSHA1 = new SHA1CryptoServiceProvider();

           byte[] keyhash = hashSHA1.ComputeHash(original);

           hashSHA1.Clear();

   string result = System.Text.Encoding.UTF8.GetString(keyhash);

   return result;

 

byte[] original = System.Text.Encoding.UTF8.GetBytes("test");

MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();

           byte[] keyhash = hashmd5.ComputeHash(original);

           hashmd5.Clear();

   string result = System.Text.Encoding.UTF8.GetString(keyhash);

   return result;

 

2、   关于其他字符串的加密和解密

在一些情况下需要保存一些字符信息,不是用于验证,而是为了一些信息的读取。这时就要用到另一种方法的加密/解密了

 

加密

    TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();

            des.Key = MakeMD5(key); //电子密码本模式,分别加密每个块

            des.Mode = CipherMode.ECB;

    return des.CreateEncryptor().TransformFinalBlock(original, 0, original.Length);

 

解密

    byte[] buff = Convert.FromBase64String(encrypted);

            byte[] kb = System.Text.Encoding.Default.GetBytes(key);

    return System.Text.Encoding.GetString(Decrypt(buff,kb));

【上篇】
【下篇】

抱歉!评论已关闭.