DES加密/解密
DES的原始思想可以參照二戰(zhàn)德國的恩尼格瑪機,其基本思想大致相同。傳統(tǒng)的密碼加密都是由古代的循環(huán)移位思想而來,恩尼格瑪機在這個基礎之上進行了擴散模糊。現(xiàn)代DES在二進制級別做著同樣的事:替代模糊,增加分析的難度。
加解密
using?System.Security.Cryptography;
private?static?byte[]?DESKey?=?new?byte[]?{11,23,93,102,72,41,18,12};
private?static?byte[]?DESIV?=?new?byte[]?{75,158,46,97,78,57,17,36};
加密函數(shù):
public?static?string?Encode(string?Encode_String)
{
DESCryptoserviceProvider?objDES?=?new?DESCryptoserviceProvider();
MemoryStream?objMemoryStream?=?new?MemoryStream();
Cryptostream?objCryptostream?=?new?Cryptostream
(objMemoryStream,objDES.CreateEncryptor(DESKey,DESIV),CryptostreamMode.Write);
StreamWriter?objStreamWriter?=?new?StreamWriter(objCryptostream);
objStreamWriter.Write(Encode_String);
objStreamWriter.Flush();
objCryptostream.FlushFinalBlock();
objMemoryStream.Flush();
return?Convert.ToBase64String(objMemoryStream.GetBuffer(),?0,?(int)
objMemoryStream.Length);
}
//解密函數(shù)
public?static?string?Decode(string?Encode_String)
{
DESCryptoserviceProvider?objDES?=?new?DESCryptoserviceProvider();
byte[]?Input?=?Convert.FromBase64String(Encode_String);
MemoryStream?objMemoryStream?=?new?MemoryStream(Input);
Cryptostream?objCryptostream?=?new?Cryptostream
(objMemoryStream,objDES.CreateDecryptor(DESKey,DESIV),CryptostreamMode.Read);
StreamReader?objStreamReader?=?new?StreamReader(objCryptostream);
return?objStreamReader.ReadToEnd();
}



