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();

}