概念
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;
}
}