//加密方法.
private string DESEncrypt(string strInput, string strKey) {
try {
byte[] bytesData = Encoding.UTF8.GetBytes(strInput); //加密明文.
byte[] bytesVector = keysVector; //加密向量.
byte[] bytesKey = Encoding.UTF8.GetBytes(strKey); //密匙.
DESCryptoServiceProvider encoder = new DESCryptoServiceProvider();
//用using可以确保流的关闭.
using(MemoryStream mStream = new MemoryStream()) {
CryptoStream cStream = new CryptoStream(mStream, encoder.CreateEncryptor(bytesKey, bytesVector), CryptoStreamMode.Write);
cStream.Write(bytesData, 0, bytesData.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
//Converts an array of 8-bit unsigned integers to its equivalent string representation that is encoded with base-64 digits.
}
}
catch(System.Exception ex) {
return ex.Message;
}
}
//解密方法.
private string DESDecrypt(string strInput, string strKey) {
try {
byte[] bytesData = Convert.FromBase64String(strInput); //加密了的字符串.
// Converts the specified string, which encodes binary data as base-64 digits, to an equivalent 8-bit unsigned integer array.
byte[] bytesKey = Encoding.UTF8.GetBytes(strKey);
byte[] bytesVector = keysVector; //加密向量.
DESCryptoServiceProvider decoder = new DESCryptoServiceProvider();
using(MemoryStream mStream = new MemoryStream()) {
CryptoStream cStream = new CryptoStream(mStream, decoder.CreateDecryptor(bytesKey, bytesVector), CryptoStreamMode.Write);
cStream.Write(bytesData, 0, bytesData.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
//When overridden in a derived class, decodes all the bytes in the specified byte array into a string.
}
}
catch(System.Exception ex) {
return ex.Message;
}
}
DES加密解密不难..