public class Dencrypt
{
//默认密钥向量
private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
/// <summary>
/// DES加密
/// </summary>
/// <param name="sourceByte">待加密</param>
/// <param name="key">加密密钥,要求为8位</param>
/// <returns>加密成功返回加密后,失败返回源</returns>
public static byte[] Encrypt(byte[] sourceByte, string key)
{
try
{
byte[] rgbKey = Encoding.Default.GetBytes(key.Substring(0, 8));
byte[] rgbIV = Keys;
byte[] inputByteArray = sourceByte;
DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return mStream.ToArray();
}
catch
{
return sourceByte;
}
}
/// <summary>
/// DES解密字符串
/// </summary>
/// <param name="sourceByte">待解密的字符串</param>
/// <param name="key">解密密钥,要求为8位,和加密密钥相同</param>
/// <returns>解密成功返回解密后的字符串,失败返源串</returns>
public static byte[] Decrypt(byte[] sourceByte, string key)
{
try
{
byte[] rgbKey = Encoding.Default.GetBytes(key);
byte[] rgbIV = Keys;
byte[] inputByteArray = sourceByte;
DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return mStream.ToArray();
}
catch
{
return sourceByte;
}
}
}
调用方法
//加密:
Dencrypt.Encrypt(比特数组, 8位英文字符串,这里是密钥);
//解密
Dencrypt.Decrypt(比特数组, 8位英文字符串,这里是密钥);