您的位置:首页 > 其它

TrippleDESCSPEncrypt 加密解密试试看

2015-06-23 09:19 309 查看
public class TrippleDESCSPEncrypt
{
//12个字符
private static string customIV = "4vHKRj3yfzU=";
//32个字符
private static string customKey = "xhVs6DRXLfUGxw+AhtfQdpQGoa+8SA9d";

/// <summary>
/// 加密字符串
/// </summary>
/// <param name="password"></param>
/// <returns></returns>
public string EncryptPassword(string password)
{
string encryptPassword = string.Empty;

SymmetricAlgorithm algorithm = new TripleDESCryptoServiceProvider();
algorithm.Key = Convert.FromBase64String(customKey);

algorithm.IV = Convert.FromBase64String(customIV);//在ECB模式下,IV不起作用
algorithm.Mode = CipherMode.ECB;
algorithm.Padding = PaddingMode.PKCS7;

ICryptoTransform transform = algorithm.CreateEncryptor();

byte[] data = (new System.Text.ASCIIEncoding()).GetBytes(password);
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream, transform, CryptoStreamMode.Write);

cryptoStream.Write(data, 0, data.Length);
cryptoStream.FlushFinalBlock();
encryptPassword = Convert.ToBase64String(memoryStream.ToArray());

memoryStream.Close();
cryptoStream.Close();

return encryptPassword;
}

/// <summary>
/// 解密字符串
/// </summary>
/// <param name="password"></param>
/// <returns></returns>
public string DecryptPassword(string password)
{
string decryptPassword = string.Empty;

SymmetricAlgorithm algorithm = new TripleDESCryptoServiceProvider();
algorithm.Key = Convert.FromBase64String(customKey);
algorithm.IV = Convert.FromBase64String(customIV);//在ECB模式下不起作用
algorithm.Mode = CipherMode.ECB;
algorithm.Padding = PaddingMode.PKCS7;

ICryptoTransform transform = algorithm.CreateDecryptor(algorithm.Key, algorithm.IV);
       //ICryptoTransform transform = algorithm.CreateDecryptor();//在ECB模式下也可以使用此句。
        

byte[] buffer = Convert.FromBase64String(password);
MemoryStream memoryStream = new MemoryStream(buffer);
CryptoStream cryptoStream = new CryptoStream(memoryStream, transform, CryptoStreamMode.Read);
StreamReader reader = new StreamReader(cryptoStream, System.Text.Encoding.ASCII);
decryptPassword = reader.ReadToEnd();

reader.Close();
cryptoStream.Close();
memoryStream.Close();

return decryptPassword;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: