DES是对称加密,原理去网上查,很详细
public String ToDES(string encryptString)
{
String key="abcdefgh";
//密钥
byte[] keyBytes = Encoding.UTF8.GetBytes(key);
//向量,防止原文中相同的明文部分,加密后也相同
byte[] keyIV = keyBytes;
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, provider.CreateEncryptor(keyBytes, keyIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
}
public String FromDES(string decryptString)
{
String key="abcdefgh";
byte[] keyBytes = Encoding.UTF8.GetBytes(key);
byte[] keyIV = keyBytes;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, provider.CreateDecryptor(keyBytes, keyIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
现在随着计算机性能的提高,简单的DES加密容易被破解,现在普遍使用三重DES加密,原理是一样的,
使用 168 位的密钥对资料进行三次加密的一种机制;它通常(但非始终)提供极其强大的安全性。如果三个 56 位的子元素都相同,则三重 DES 向后兼容 DES.
在C#中使用TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();进行三重DES加密,其他一样。