TripleDES.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证。
  2. //
  3. // 必须在法律法规允许的范围内正确使用,严禁将其用于非法、欺诈、恶意或侵犯他人合法权益的目的。
  4. using System.Security.Cryptography;
  5. namespace Admin.NET.Core;
  6. /// <summary>
  7. /// 3DES文件加解密
  8. /// </summary>
  9. public static class TripleDES
  10. {
  11. /// <summary>
  12. /// 加密文件
  13. /// </summary>
  14. /// <param name="inputFile">待加密文件路径</param>
  15. /// <param name="outputFile">加密后的文件路径</param>
  16. /// <param name="password">密码 (24位长度)</param>
  17. [Obsolete]
  18. public static void EncryptFile(string inputFile, string outputFile, string password)
  19. {
  20. using var tdes = new TripleDESCryptoServiceProvider();
  21. tdes.Mode = CipherMode.ECB;
  22. tdes.Padding = PaddingMode.PKCS7;
  23. tdes.Key = Encoding.UTF8.GetBytes(password);
  24. using var inputFileStream = new FileStream(inputFile, FileMode.Open);
  25. using var encryptedFileStream = new FileStream(outputFile, FileMode.Create);
  26. using var cryptoStream = new CryptoStream(encryptedFileStream, tdes.CreateEncryptor(), CryptoStreamMode.Write);
  27. inputFileStream.CopyTo(cryptoStream);
  28. }
  29. /// <summary>
  30. /// 加密文件
  31. /// </summary>
  32. /// <param name="inputFile">加密的文件路径</param>
  33. /// <param name="outputFile">解密后的文件路径</param>
  34. /// <param name="password">密码 (24位长度)</param>
  35. [Obsolete]
  36. public static void DecryptFile(string inputFile, string outputFile, string password)
  37. {
  38. using var tdes = new TripleDESCryptoServiceProvider();
  39. tdes.Mode = CipherMode.ECB;
  40. tdes.Padding = PaddingMode.PKCS7;
  41. tdes.Key = Encoding.UTF8.GetBytes(password);
  42. using var encryptedFileStream = new FileStream(inputFile, FileMode.Open);
  43. using var decryptedFileStream = new FileStream(outputFile, FileMode.Create);
  44. using var cryptoStream = new CryptoStream(encryptedFileStream, tdes.CreateDecryptor(), CryptoStreamMode.Read);
  45. cryptoStream.CopyTo(decryptedFileStream);
  46. }
  47. }