zoukankan      html  css  js  c++  java
  • AES

    public static class AESEncryptionUtility
        {
            public static string Encrypt(string data, string key, string iv = null, CipherMode mode= CipherMode.CBC, PaddingMode paddingMode= PaddingMode.PKCS7)
            {
                byte[] bytes = Encoding.UTF8.GetBytes(data);
                RijndaelManaged rijndaelManaged = new RijndaelManaged
                {
                    Key = Convert.FromBase64String(key),
                    Mode = CipherMode.ECB,
                    Padding = PaddingMode.PKCS7
                };
                if (!string.IsNullOrEmpty(iv))
                {
                    rijndaelManaged.IV = Encoding.UTF8.GetBytes(iv);
                }
                rijndaelManaged.Mode = mode;
                rijndaelManaged.Padding = paddingMode;
                ICryptoTransform cryptoTransform = rijndaelManaged.CreateEncryptor();
                byte[] array = cryptoTransform.TransformFinalBlock(bytes, 0, bytes.Length);
                var result = Convert.ToBase64String(array, 0, array.Length);
                return result;
            }
    
            public static string Decrypt(string data, string key, string iv=null, CipherMode mode = CipherMode.CBC, PaddingMode paddingMode = PaddingMode.PKCS7)
            {
                byte[] array = Convert.FromBase64String(data);
    
                RijndaelManaged rijndaelManaged = new RijndaelManaged
                {
                    Key = Convert.FromBase64String(key),
                    Mode = CipherMode.ECB,
                    Padding = PaddingMode.PKCS7
                };
                if (!string.IsNullOrEmpty(iv))
                {
                    rijndaelManaged.IV = Encoding.UTF8.GetBytes(iv);
                }
                rijndaelManaged.Mode = mode;
                rijndaelManaged.Padding = paddingMode;
                ICryptoTransform cryptoTransform = rijndaelManaged.CreateDecryptor();
                byte[] bytes = cryptoTransform.TransformFinalBlock(array, 0, array.Length);
    
                var result = Encoding.UTF8.GetString(bytes);
                return result;
            }
    
            public static string AesGenKey(int size,CipherMode mode = CipherMode.CBC, PaddingMode paddingMode = PaddingMode.PKCS7)
            {
                RijndaelManaged rijndaelManaged = new RijndaelManaged
                {
                    KeySize = size,
                    Mode = mode,
                    Padding = paddingMode
                };
                rijndaelManaged.GenerateKey();
                return Convert.ToBase64String(rijndaelManaged.Key);
            }
        }
    

    使用方式

    [TestMethod]
            public void AES()
            {
                var key=AESEncryptionUtility.AesGenKey(128);
                var input = "HelloWorld1";
                var secret = AESEncryptionUtility.Encrypt(input, key, "FFFFF09839694AC6");
                Console.WriteLine(secret);
            }
            [TestMethod]
            public void DeAES()
            {
                var key = AESEncryptionUtility.AesGenKey(128);
                var input = "HelloWorld1";
                var secret = AESEncryptionUtility.Encrypt(input, key, "FFFFF09839694AC6");
                var result = AESEncryptionUtility.Decrypt(secret, key, "FFFFF09839694AC6");
                Console.WriteLine(result);
            }
    
  • 相关阅读:
    ros学习之消息和服务
    linux软件安装
    ros使用QT插件开发
    使用客户端对象模型读取SharePoint列表数据
    使用服务器端对象模型,编写程序管理SharePoint列表
    Visual Studio创建简单的Event Receiver
    在SharePoint中使用LINQ
    使用Visual Stuidio 2010 创建网站列
    使用Visual Studio 创建新的Web Part项目
    在SharePoint页面嵌入简单的Silverlight程序
  • 原文地址:https://www.cnblogs.com/ives/p/12067041.html
Copyright © 2011-2022 走看看