C#DES对称加解密
C#里的 DES 加解密,说实话,虽然现在有点老了,但用在一些老系统或兼容项目里,还是蛮常见的。
用DESCryptoServiceProvider
搞定对称加密这事儿其实不复杂,关键点就几个:密钥、初始化向量(IV)、加解密流,还有点填充模式的设置,搞明白这些就差不多能上手了。
比如你要加密个文件,用CreateEncryptor()
配合CryptoStream
往输出流里写,加密过程就走完了。解密也一样,只不过换成CreateDecryptor()
读就行。整体流程清晰、代码也还算好维护。
,DES 安全性现在不算高,主要是密钥太短(56 位),暴力破解相对容易。如果是新项目,建议你直接上 AES。但你如果要维护老项目,或者要和别的系统打交道时对方只支持 DES,这套代码就挺好用的。
像下面这个加解密文件的例子,直接能跑:
public static void EncryptFile(string inputFile, string outputFile, byte[] key, byte[] iv) {
using (var des = new DESCryptoServiceProvider()) {
using (var input = File.OpenRead(inputFile))
using (var output = File.Create(outputFile))
using (var cryptoStream = new CryptoStream(output, des.CreateEncryptor(key, iv), CryptoStreamMode.Write)) {
input.CopyTo(cryptoStream);
}
}
}
小提醒:key 和 IV 一定要保持一致,不然解密的时候读出来的全是乱码。你可以用Rfc2898DeriveBytes
之类的工具生成更稳一点的密钥。
如果你对比研究,还可以看看C#加密解密、DES 和 3DES 工具、或者Java 实现 DES这些资源,扩展下视野也不错。
,这份 C#版 DES 加解密的资料对老项目维护或者数据迁移挺有用,安全要求不高的时候拿来直接用也没啥问题。
DES_加密算法.rar
预估大小:42个文件
DES_加密算法
文件夹
DES_加密算法.sln
938B
DES_加密算法
文件夹
bin
文件夹
Release
文件夹
Debug
文件夹
sourse.txt
文件夹
key.ini
16B
target.txt
93B
DES_加密算法.exe
36KB
85.1KB
文件大小:
评论区