fork(3) download
  1. /******************************************************************
  2.  * 创建人:HTL
  3.  * 创建时间:2015-04-17 17:36:35
  4.  * 说明:C# AES加密解密
  5.  * Email:huangyuan413026@163.com
  6.  *******************************************************************/
  7. using System;
  8. using System.Security.Cryptography;
  9. using System.Text;
  10. using System.IO;
  11. public class Test
  12. {
  13. public static void Main()
  14. {
  15. //密码
  16. string password="1234567890123456";
  17. //加密初始化向量
  18. string iv="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
  19. string message=AESEncrypt("abcdefghigklmnopqrstuvwxyz0123456789",password,iv);
  20. Console.WriteLine(message);
  21.  
  22. message=AESDecrypt("8Z3dZzqn05FmiuBLowExK0CAbs4TY2GorC2dDPVlsn/tP+VuJGePqIMv1uSaVErr",password,iv);
  23.  
  24. Console.WriteLine(message);
  25. }
  26.  
  27.  
  28. /// <summary>
  29. /// AES加密
  30. /// </summary>
  31. /// <param name="text">加密字符</param>
  32. /// <param name="password">加密的密码</param>
  33. /// <param name="iv">密钥</param>
  34. /// <returns></returns>
  35. public static string AESEncrypt(string text, string password, string iv)
  36. {
  37. RijndaelManaged rijndaelCipher = new RijndaelManaged();
  38.  
  39. rijndaelCipher.Mode = CipherMode.CBC;
  40.  
  41. rijndaelCipher.Padding = PaddingMode.PKCS7;
  42.  
  43. rijndaelCipher.KeySize = 128;
  44.  
  45. rijndaelCipher.BlockSize = 128;
  46.  
  47. byte[] pwdBytes = System.Text.Encoding.UTF8.GetBytes(password);
  48.  
  49. byte[] keyBytes = new byte[16];
  50.  
  51. int len = pwdBytes.Length;
  52.  
  53. if (len > keyBytes.Length) len = keyBytes.Length;
  54.  
  55. System.Array.Copy(pwdBytes, keyBytes, len);
  56.  
  57. rijndaelCipher.Key = keyBytes;
  58.  
  59.  
  60. byte[] ivBytes = System.Text.Encoding.UTF8.GetBytes(iv);
  61. rijndaelCipher.IV = new byte[16];
  62.  
  63. ICryptoTransform transform = rijndaelCipher.CreateEncryptor();
  64.  
  65. byte[] plainText = Encoding.UTF8.GetBytes(text);
  66.  
  67. byte[] cipherBytes = transform.TransformFinalBlock(plainText, 0, plainText.Length);
  68.  
  69. return Convert.ToBase64String(cipherBytes);
  70.  
  71. }
  72. /// <summary>
  73. /// AES解密
  74. /// </summary>
  75. /// <param name="text"></param>
  76. /// <param name="password"></param>
  77. /// <param name="iv"></param>
  78. /// <returns></returns>
  79. public static string AESDecrypt(string text, string password, string iv)
  80. {
  81. RijndaelManaged rijndaelCipher = new RijndaelManaged();
  82.  
  83. rijndaelCipher.Mode = CipherMode.CBC;
  84.  
  85. rijndaelCipher.Padding = PaddingMode.PKCS7;
  86.  
  87. rijndaelCipher.KeySize = 128;
  88.  
  89. rijndaelCipher.BlockSize = 128;
  90.  
  91. byte[] encryptedData = Convert.FromBase64String(text);
  92.  
  93. byte[] pwdBytes = System.Text.Encoding.UTF8.GetBytes(password);
  94.  
  95. byte[] keyBytes = new byte[16];
  96.  
  97. int len = pwdBytes.Length;
  98.  
  99. if (len > keyBytes.Length) len = keyBytes.Length;
  100.  
  101. System.Array.Copy(pwdBytes, keyBytes, len);
  102.  
  103. rijndaelCipher.Key = keyBytes;
  104.  
  105. byte[] ivBytes = System.Text.Encoding.UTF8.GetBytes(iv);
  106. rijndaelCipher.IV = ivBytes;
  107.  
  108. ICryptoTransform transform = rijndaelCipher.CreateDecryptor();
  109.  
  110. byte[] plainText = transform.TransformFinalBlock(encryptedData, 0, encryptedData.Length);
  111.  
  112. return Encoding.UTF8.GetString(plainText);
  113.  
  114. }
  115.  
  116. }
Success #stdin #stdout 0.05s 24392KB
stdin
Standard input is empty
stdout
8Z3dZzqn05FmiuBLowExK0CAbs4TY2GorC2dDPVlsn/tP+VuJGePqIMv1uSaVErr
abcdefghigklmnopqrstuvwxyz0123456789