|
|
@@ -1,11 +1,21 @@
|
|
|
-using System.IO;
|
|
|
+// 麻省理工学院许可证
|
|
|
+//
|
|
|
+// 版权所有 (c) 2021-2023 zuohuaijun,大名科技(天津)有限公司 联系电话/微信:18020030720 QQ:515096995
|
|
|
+//
|
|
|
+// 特此免费授予获得本软件的任何人以处理本软件的权利,但须遵守以下条件:在所有副本或重要部分的软件中必须包括上述版权声明和本许可声明。
|
|
|
+//
|
|
|
+// 软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于对适销性、适用性和非侵权的保证。
|
|
|
+// 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。
|
|
|
+
|
|
|
using System.Security.Cryptography;
|
|
|
-using System.Text;
|
|
|
|
|
|
namespace Admin.NET.Core;
|
|
|
|
|
|
+/// <summary>
|
|
|
+/// 3DES文件加解密
|
|
|
+/// </summary>
|
|
|
public static class TripleDES
|
|
|
-{
|
|
|
+{
|
|
|
/// <summary>
|
|
|
/// 加密文件
|
|
|
/// </summary>
|
|
|
@@ -13,19 +23,15 @@ public static class TripleDES
|
|
|
/// <param name="outputFile">加密后的文件路径</param>
|
|
|
/// <param name="password">密码 (24位长度)</param>
|
|
|
public static void EncryptFile(string inputFile, string outputFile, string password)
|
|
|
- {
|
|
|
- using (TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider())
|
|
|
- {
|
|
|
- tdes.Mode = CipherMode.ECB;
|
|
|
- tdes.Padding = PaddingMode.PKCS7;
|
|
|
- tdes.Key = Encoding.UTF8.GetBytes(password);
|
|
|
- using (FileStream inputFileStream = new FileStream(inputFile, FileMode.Open))
|
|
|
- using (FileStream encryptedFileStream = new FileStream(outputFile, FileMode.Create))
|
|
|
- using (CryptoStream cryptoStream = new CryptoStream(encryptedFileStream, tdes.CreateEncryptor(), CryptoStreamMode.Write))
|
|
|
- {
|
|
|
- inputFileStream.CopyTo(cryptoStream);
|
|
|
- }
|
|
|
- }
|
|
|
+ {
|
|
|
+ using var tdes = new TripleDESCryptoServiceProvider();
|
|
|
+ tdes.Mode = CipherMode.ECB;
|
|
|
+ tdes.Padding = PaddingMode.PKCS7;
|
|
|
+ tdes.Key = Encoding.UTF8.GetBytes(password);
|
|
|
+ using var inputFileStream = new FileStream(inputFile, FileMode.Open);
|
|
|
+ using var encryptedFileStream = new FileStream(outputFile, FileMode.Create);
|
|
|
+ using var cryptoStream = new CryptoStream(encryptedFileStream, tdes.CreateEncryptor(), CryptoStreamMode.Write);
|
|
|
+ inputFileStream.CopyTo(cryptoStream);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -35,18 +41,14 @@ public static class TripleDES
|
|
|
/// <param name="outputFile">解密后的文件路径</param>
|
|
|
/// <param name="password">密码 (24位长度)</param>
|
|
|
public static void DecryptFile(string inputFile, string outputFile, string password)
|
|
|
- {
|
|
|
- using (TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider())
|
|
|
- {
|
|
|
- tdes.Mode = CipherMode.ECB;
|
|
|
- tdes.Padding = PaddingMode.PKCS7;
|
|
|
- tdes.Key = Encoding.UTF8.GetBytes(password);
|
|
|
- using (FileStream encryptedFileStream = new FileStream(inputFile, FileMode.Open))
|
|
|
- using (FileStream decryptedFileStream = new FileStream(outputFile, FileMode.Create))
|
|
|
- using (CryptoStream cryptoStream = new CryptoStream(encryptedFileStream, tdes.CreateDecryptor(), CryptoStreamMode.Read))
|
|
|
- {
|
|
|
- cryptoStream.CopyTo(decryptedFileStream);
|
|
|
- }
|
|
|
- }
|
|
|
+ {
|
|
|
+ using var tdes = new TripleDESCryptoServiceProvider();
|
|
|
+ tdes.Mode = CipherMode.ECB;
|
|
|
+ tdes.Padding = PaddingMode.PKCS7;
|
|
|
+ tdes.Key = Encoding.UTF8.GetBytes(password);
|
|
|
+ using var encryptedFileStream = new FileStream(inputFile, FileMode.Open);
|
|
|
+ using var decryptedFileStream = new FileStream(outputFile, FileMode.Create);
|
|
|
+ using var cryptoStream = new CryptoStream(encryptedFileStream, tdes.CreateDecryptor(), CryptoStreamMode.Read);
|
|
|
+ cryptoStream.CopyTo(decryptedFileStream);
|
|
|
}
|
|
|
}
|