C# 有提供統一的DES加密類 DESCryptoServiceProvider 類 System.Security.Cryptography.DESCryptoServiceProvider,
mscorlib.dll。
使用實例:
public virtual string UserCodeDesCBC(string date, string desKey)
{
System.Security.Cryptography.DESCryptoServiceProvider provider = new System.Security.Cryptography.DESCryptoServiceProvider();
//設置運算模式
provider.Mode = System.Security.Cryptography.CipherMode.CBC
//設置填充模式
//PKCS #7 ,pkcs7padding 其加密結果與 PKCS #5 ,pkcs5padding 相同,微軟沒有PKCS #5的設置
provider.Padding = System.Security.Cryptography.PaddingMode.PKCS7
//
//處理祕鑰
byte[] keyBytes = Encoding.UTF8.GetBytes(desKey);
//處理初始化向量,此處直接和祕鑰一致。也可按需求,單獨設置,處理類似祕鑰處理
byte[] keyIV = keyBytes;
//加密數據
MemoryStream mStream = new MemoryStream();
System.Security.Cryptography.CryptoStream cStream = new System.Security.Cryptography.CryptoStream(mStream, provider.CreateEncryptor(keyBytes, keyIV), System.Security.Cryptography.CryptoStreamMode.Write);
//date爲要加密的數據,要轉換爲二進制數據,這裏編碼可以按照需求,自行選擇
byte[] inputByteArray = Encoding.UTF8.GetBytes(date);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
//獲取加密結果,此處編碼也可按照需求自行選擇
return Convert.ToBase64String(mStream.ToArray());
}