[关闭]
@myyzs 2020-09-11T01:36:42.000000Z 字数 1890 阅读 24

C#Aes加密源码

未分类

---C# AES加密

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security.Cryptography;
namespace test
{
    public class AESHelper
    {
        private static readonly string pass = "1234";

        public static string AES_Encrypt(string input)
        {
            return AESHelper.AES_Encrypt(input, AESHelper.pass);
        }

        public static string AES_Decrypt(string input)
        {
            return AESHelper.AES_Decrypt(input, AESHelper.pass);
        }

        public static string AES_Encrypt(string input, string pass)
        {
            RijndaelManaged rijndaelManaged = new RijndaelManaged();
            MD5CryptoServiceProvider mD5CryptoServiceProvider = new MD5CryptoServiceProvider();
            string result;
            try
            {
                byte[] array = new byte[32];
                byte[] sourceArray = mD5CryptoServiceProvider.ComputeHash(Encoding.UTF8.GetBytes(pass));
                Array.Copy(sourceArray, 0, array, 0, 16);
                Array.Copy(sourceArray, 0, array, 15, 16);
                rijndaelManaged.Key = array;
                rijndaelManaged.Mode = CipherMode.ECB;
                ICryptoTransform cryptoTransform = rijndaelManaged.CreateEncryptor();
                byte[] bytes = Encoding.UTF8.GetBytes(input);
                string text = Convert.ToBase64String(cryptoTransform.TransformFinalBlock(bytes, 0, bytes.Length));
                result = text;
            }
            catch (Exception)
            {
                result = "";
            }
            return result;
        }

        public static string AES_Decrypt(string input, string pass)
        {
            RijndaelManaged rijndaelManaged = new RijndaelManaged();
            MD5CryptoServiceProvider mD5CryptoServiceProvider = new MD5CryptoServiceProvider();
            string result;
            try
            {
                byte[] array = new byte[32];
                byte[] sourceArray = mD5CryptoServiceProvider.ComputeHash(Encoding.UTF8.GetBytes(pass));
                Array.Copy(sourceArray, 0, array, 0, 16);
                Array.Copy(sourceArray, 0, array, 15, 16);
                rijndaelManaged.Key = array;
                rijndaelManaged.Mode = CipherMode.ECB;
                ICryptoTransform cryptoTransform = rijndaelManaged.CreateDecryptor();
                byte[] array2 = Convert.FromBase64String(input);
                string @string = Encoding.UTF8.GetString(cryptoTransform.TransformFinalBlock(array2, 0, array2.Length));
                result = @string;
            }
            catch (Exception)
            {
                result = "";
            }
            return result;
        }
    }
}

备注

1.此加密算法生成的结果有特殊字符,使用在url上的时候要urlencode处理一下

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注