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 加解密的资料对老项目维护或者数据迁移挺有用,安全要求不高的时候拿来直接用也没啥问题。

rar
DES_加密算法.rar 预估大小:42个文件
folder
DES_加密算法 文件夹
file
DES_加密算法.sln 938B
folder
DES_加密算法 文件夹
folder
bin 文件夹
folder
Release 文件夹
folder
Debug 文件夹
folder
sourse.txt 文件夹
file
key.ini 16B
file
target.txt 93B
file
DES_加密算法.exe 36KB
file
DES_加密算法.pdb 70KB
file
DES_加密算法.vshost.exe 11KB
file
ASCII 对照表.txt 7KB
file
Form1.Designer.cs 15KB
file
Form2.resx 6KB
file
Program.cs 520B
folder
obj 文件夹
file
DES_加密算法.csproj.FileListAbsolute.txt 861B
file
DES_加密算法.csproj.FileList.txt 375B
folder
Debug 文件夹
file
DES_加密算法.Form2.resources 180B
file
DES_加密算法.Form1.resources 180B
file
DES_加密算法.Properties.Resources.resources 180B
file
DES_加密算法.csproj.GenerateResource.Cache 900B
file
DesignTimeResolveAssemblyReferencesInput.cache 5KB
file
DES_加密算法.exe 36KB
file
DES_加密算法.csproj.FileListAbsolute.txt 172B
file
DES_加密算法.pdb 70KB
folder
TempPE 文件夹
file
Properties.Resources.Designer.cs.dll 5KB
folder
Refactor 文件夹
file
SendServer.cs 2KB
file
DES_加密算法.csproj 4KB
file
PublicClass.cs 6KB
file
Form2.cs 1KB
file
Form1.cs 5KB
file
Form2.Designer.cs 8KB
file
Form1.resx 6KB
file
3DES.cs 5KB
file
DES_3.cs 5KB
folder
Properties 文件夹
file
Resources.resx 5KB
file
Settings.settings 249B
file
AssemblyInfo.cs 1KB
file
Settings.Designer.cs 1KB
file
Resources.Designer.cs 3KB
file
UpgradeLog.XML 2KB
folder
_UpgradeReport_Files 文件夹
file
UpgradeReport.xslt 12KB
file
UpgradeReport_Minus.gif 69B
file
UpgradeReport.css 3KB
file
UpgradeReport_Plus.gif 71B
file
DES_加密算法.suo 27KB
rar 文件大小:85.1KB