12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- using System;
- using System.Security.Cryptography;
- using System.Text;
- namespace CB.TVUCenter.Encrypt
- {
- public class AES
- {
- /// <summary>
- /// AES加密
- /// </summary>
- /// <param name="toEncrypt">加密字符串</param>
- /// <param name="key">密钥</param>
- /// <returns></returns>
- public static string Encrypt(string toEncrypt, string key)
- {
- byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);
- byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);
- RijndaelManaged rDel = new RijndaelManaged();
- rDel.Key = keyArray;
- rDel.Mode = CipherMode.ECB;
- rDel.Padding = PaddingMode.PKCS7;
- ICryptoTransform cTransform = rDel.CreateEncryptor();
- byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
- return Convert.ToBase64String(resultArray, 0, resultArray.Length);
- }
- /// <summary>
- /// AES解密
- /// </summary>
- /// <param name="toDecrypt">解密密文</param>
- /// <param name="key">密钥</param>
- /// <returns></returns>
- public static string Decrypt(string toDecrypt, string key)
- {
- byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);
- byte[] toEncryptArray = Convert.FromBase64String(toDecrypt);
- RijndaelManaged rDel = new RijndaelManaged();
- rDel.Key = keyArray;
- rDel.Mode = CipherMode.ECB;
- rDel.Padding = PaddingMode.PKCS7;
- ICryptoTransform cTransform = rDel.CreateDecryptor();
- byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
- return UTF8Encoding.UTF8.GetString(resultArray);
- }
- /// <summary>
- /// 随机生成16位AESkey
- /// </summary>
- /// <returns></returns>
- public static string GenerateAESKey(int length)
- {
- string str = string.Empty;
- Random rnd1 = new Random();
- int r = rnd1.Next(10, 100);
- long num2 = DateTime.Now.Ticks + r;
- Random random = new Random(((int)(((ulong)num2) & 0xffffffffL)) | ((int)(num2 >> r)));
- for (int i = 0; i < length; i++)
- {
- char ch;
- int num = random.Next();
- if ((num % 2) == 0)
- {
- ch = (char)(0x30 + ((ushort)(num % 10)));
- }
- else
- {
- ch = (char)(0x41 + ((ushort)(num % 0x1a)));
- }
- str = str + ch.ToString();
- }
- return str;
- }
- }
- }
|