您的位置:首页 > 其它

简单的加密和解密

2006-12-01 17:08 267 查看
1、 关于用户密码的加密

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

有两种选择SHA1和MD5

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));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: