DES3Crypt.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. using System;
  2. using System.IO;
  3. using System.Security.Cryptography;
  4. using System.Text;
  5. namespace TEAMModelOS.SDK.Helper.Security.DesCrypt
  6. {
  7. /// <summary>
  8. ///3DES加密解密程序
  9. /// --备用
  10. /// </summary>
  11. public class DES3Crypt
  12. {
  13. //密钥
  14. private static string sKey = "qJzGEh6hESZDVJeCnFPGuxzaiFYTLQM3";
  15. //矢量,矢量可以为空
  16. private static string sIV = "qcDY6X+aPLw=";
  17. //构造一个对称算法
  18. private static SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider();
  19. public DES3Crypt() { }
  20. /// <summary>
  21. /// 加密
  22. /// </summary>
  23. /// <param name="Value">明文</param>
  24. /// <returns>加密后的密文</returns>
  25. public static string EncryptString(string Value)
  26. {
  27. try
  28. {
  29. ICryptoTransform ct;
  30. MemoryStream ms;
  31. CryptoStream cs;
  32. byte[] byt;
  33. mCSP.Key = Convert.FromBase64String(sKey);
  34. mCSP.IV = Convert.FromBase64String(sIV);
  35. //指定加密的运算模式
  36. mCSP.Mode = System.Security.Cryptography.CipherMode.ECB;
  37. //获取或设置加密算法的填充模式
  38. mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
  39. ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV);
  40. byt = Encoding.UTF8.GetBytes(Value + "_0212YUAN");
  41. ms = new MemoryStream();
  42. cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
  43. cs.Write(byt, 0, byt.Length);
  44. cs.FlushFinalBlock();
  45. cs.Close();
  46. return Convert.ToBase64String(ms.ToArray());
  47. }
  48. catch (Exception ex)
  49. {
  50. var s = ex.Message;
  51. return Value;
  52. }
  53. }
  54. /// <summary>
  55. /// 解密
  56. /// </summary>
  57. /// <param name="Value"></param>
  58. /// <returns></returns>
  59. public static string DecryptString(string Value)
  60. {
  61. try
  62. {
  63. ICryptoTransform ct;
  64. MemoryStream ms;
  65. CryptoStream cs;
  66. byte[] byt;
  67. mCSP.Key = Convert.FromBase64String(sKey);
  68. mCSP.IV = Convert.FromBase64String(sIV);
  69. mCSP.Mode = System.Security.Cryptography.CipherMode.ECB;
  70. mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
  71. ct = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);
  72. byt = Convert.FromBase64String(Value);
  73. ms = new MemoryStream();
  74. cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
  75. cs.Write(byt, 0, byt.Length);
  76. cs.FlushFinalBlock();
  77. cs.Close();
  78. return Encoding.UTF8.GetString(ms.ToArray()).Remove(Encoding.UTF8.GetString(ms.ToArray()).Length - 9, 9);
  79. }
  80. catch (Exception ex)
  81. {
  82. var s = ex.Message;
  83. return Value;
  84. }
  85. }
  86. }
  87. }