DES(Data Encryption Standard)是一种对称加密算法,是美国联邦政府于1977年发布的一种数据加密标准。它是一种分组密码,将明文分成64位的数据块,并对每个数据块进行加密和解密操作。DES使用相同的密钥进行加密和解密,密钥长度为56位,其中8位用于奇偶校验。
DES的优点包括:
然而,DES也存在一些缺点:
C#private void btnEncrypt_Click(object sender, EventArgs e)
{
string plainText = txtPlain.Text;
string key = txtKey.Text;
byte[] keyBytes = Encoding.UTF8.GetBytes(key);
byte[] ivBytes = Encoding.UTF8.GetBytes(key);
byte[] plainBytes = Encoding.UTF8.GetBytes(plainText);
var des = DES.Create();
var ms = new MemoryStream();
var cs = new CryptoStream(ms, des.CreateEncryptor(keyBytes, ivBytes)
, CryptoStreamMode.Write);
cs.Write(plainBytes, 0, plainBytes.Length);
cs.FlushFinalBlock();
cs.Close();
txtEncrypted.Text = Convert.ToBase64String(ms.ToArray());
ms.Close();
des.Dispose();
}
注:ivBytes跟keyBytes 的长度要一致,默认是 8 个字节
C#private void btnDecrypt_Click(object sender, EventArgs e)
{
byte[] input = Convert.FromBase64String(txtEncrypted.Text);
var des = DES.Create();
var ms = new MemoryStream();
string key = txtKey.Text;
byte[] keyBytes = Encoding.UTF8.GetBytes(key);
byte[] ivBytes = Encoding.UTF8.GetBytes(key);
var cs = new CryptoStream(ms, des.CreateDecryptor(keyBytes, ivBytes)
, CryptoStreamMode.Write);
cs.Write(input, 0, input.Length);
cs.FlushFinalBlock();
cs.Close();
ms.Close();
des.Dispose();
string res=Encoding.UTF8.GetString(ms.ToArray());
MessageBox.Show(res);
}
本文作者:技术老小子
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!