TripleDES.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // 大名科技(天津)有限公司 版权所有
  2. //
  3. // 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证
  4. //
  5. // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动
  6. //
  7. // 任何基于本项目二次开发而产生的一切法律纠纷和责任,均与作者无关
  8. using System.Security.Cryptography;
  9. namespace Admin.NET.Core;
  10. /// <summary>
  11. /// 3DES文件加解密
  12. /// </summary>
  13. public static class TripleDES
  14. {
  15. /// <summary>
  16. /// 加密文件
  17. /// </summary>
  18. /// <param name="inputFile">待加密文件路径</param>
  19. /// <param name="outputFile">加密后的文件路径</param>
  20. /// <param name="password">密码 (24位长度)</param>
  21. [Obsolete]
  22. public static void EncryptFile(string inputFile, string outputFile, string password)
  23. {
  24. using var tdes = new TripleDESCryptoServiceProvider();
  25. tdes.Mode = CipherMode.ECB;
  26. tdes.Padding = PaddingMode.PKCS7;
  27. tdes.Key = Encoding.UTF8.GetBytes(password);
  28. using var inputFileStream = new FileStream(inputFile, FileMode.Open);
  29. using var encryptedFileStream = new FileStream(outputFile, FileMode.Create);
  30. using var cryptoStream = new CryptoStream(encryptedFileStream, tdes.CreateEncryptor(), CryptoStreamMode.Write);
  31. inputFileStream.CopyTo(cryptoStream);
  32. }
  33. /// <summary>
  34. /// 加密文件
  35. /// </summary>
  36. /// <param name="inputFile">加密的文件路径</param>
  37. /// <param name="outputFile">解密后的文件路径</param>
  38. /// <param name="password">密码 (24位长度)</param>
  39. [Obsolete]
  40. public static void DecryptFile(string inputFile, string outputFile, string password)
  41. {
  42. using var tdes = new TripleDESCryptoServiceProvider();
  43. tdes.Mode = CipherMode.ECB;
  44. tdes.Padding = PaddingMode.PKCS7;
  45. tdes.Key = Encoding.UTF8.GetBytes(password);
  46. using var encryptedFileStream = new FileStream(inputFile, FileMode.Open);
  47. using var decryptedFileStream = new FileStream(outputFile, FileMode.Create);
  48. using var cryptoStream = new CryptoStream(encryptedFileStream, tdes.CreateDecryptor(), CryptoStreamMode.Read);
  49. cryptoStream.CopyTo(decryptedFileStream);
  50. }
  51. }