概念
DES全稱為Data Encryption Standard,即資料加密标準。1997年資料加密标準DES正式公布,其分組長度為64比特,密鑰長度為64比特,其中8比特為奇偶校驗位,是以實際長度為56比特。
使用
C#可以使用自帶的類庫簡單的完成DES加密,主要用到MemoryStream、 DESCryptoServiceProvide、 CryptoStream三個類。
Encoding.UTF8.GetBytes:轉換為UTF8編碼的位元組數組
DESCryptoServiceProvide:加密服務提供者類
MemoryStream:記憶體流
CryptoStream:将資料流連接配接到加密轉換的流
CreateEncryptor(btKey, btIV):使用指定的密鑰(btKey)和初始化向量 (btIV) 建立對稱加密器對象。
實際運用
public static string Encrypt(string sourceString, string key, string iv)
{
try
{
byte[] btKey = Encoding.UTF8.GetBytes(key);//用于對稱算法的密鑰
byte[] btIV = Encoding.UTF8.GetBytes(iv);//用于對稱算法的初始化向量
DESCryptoServiceProvider des = new DESCryptoServiceProvider(); //執行個體化加密服務提供者類
using (MemoryStream ms = new MemoryStream())
{
byte[] inData = Encoding.UTF8.GetBytes(sourceString);
using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(btKey, btIV), CryptoStreamMode.Write))
{
cs.Write(inData, 0, inData.Length);
cs.FlushFinalBlock();//使用緩沖區的目前狀态更新基礎資料源或存儲庫,然後清除緩沖區。
}
return Convert.ToBase64String(ms.ToArray());
}
}
catch
{
return sourceString;
}
}