/EncryptConfig/Program.cs

# · C# · 71 lines · 65 code · 3 blank · 3 comment · 0 complexity · ec2dec0fc7ba94e6988c0b22f19c49e9 MD5 · raw file

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Security.Cryptography;
  5. using System.Xml;
  6. using System.IO;
  7. namespace EncryptConfig
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. string password = GetAppSetting("Password");
  14. UpdateAppSetting("Password", Encrypt(password));
  15. Console.WriteLine("密码节点已加密!");
  16. string gmailPassword = GetAppSetting("GmailPassword");
  17. UpdateAppSetting("GmailPassword", Encrypt(gmailPassword));
  18. Console.WriteLine("Gmail密码节点已加密!");
  19. Console.ReadLine();
  20. }
  21. public static string Encrypt(string toEncrypt)
  22. {
  23. string result = Encrypt(toEncrypt, "haozesfx");
  24. return string.Concat(result, "encrypt");
  25. }
  26. public static void UpdateAppSetting(string key, string value)
  27. {
  28. string configPath =Path.Combine(AppDomain.CurrentDomain.BaseDirectory , "HaozesFx.exe.config");
  29. XmlDocument doc = new XmlDocument();
  30. doc.Load(configPath);
  31. XmlNode node = doc.SelectSingleNode(string.Format(@"//add[@key='{0}']",key));
  32. XmlElement ele = (XmlElement)node;
  33. ele.SetAttribute("value", value);
  34. doc.Save(configPath);
  35. }
  36. public static string GetAppSetting(string key)
  37. {
  38. string configPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "HaozesFx.exe.config");
  39. XmlDocument doc = new XmlDocument();
  40. doc.Load(configPath);
  41. XmlNode node = doc.SelectSingleNode(string.Format(@"//add[@key='{0}']", key));
  42. XmlElement ele = (XmlElement)node;
  43. return ele.GetAttribute("value");
  44. }
  45. /// <summary>
  46. /// DES加密。
  47. /// </summary>
  48. public static string Encrypt(string pToEncrypt, string sKey)
  49. {
  50. using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
  51. {
  52. byte[] inputByteArray = Encoding.UTF8.GetBytes(pToEncrypt);
  53. des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
  54. des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
  55. System.IO.MemoryStream ms = new System.IO.MemoryStream();
  56. using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
  57. {
  58. cs.Write(inputByteArray, 0, inputByteArray.Length);
  59. cs.FlushFinalBlock();
  60. cs.Close();
  61. }
  62. string str = Convert.ToBase64String(ms.ToArray());
  63. ms.Close();
  64. return str;
  65. }
  66. }
  67. }
  68. }