zoukankan      html  css  js  c++  java
  • C#中AES加密和解密

    /// AES加密
            /// </summary>
            /// <param name="inputdata">输入的数据</param>
            /// <param name="iv">向量128位</param>
            /// <param name="strKey">加密密钥</param>
            /// <returns></returns>
            public static byte[] AESEncrypt(byte[] inputdata, byte[] iv, string strKey)
            {
                //分组加密算法   
                SymmetricAlgorithm des = Rijndael.Create();
                byte[] inputByteArray = inputdata;//得到需要加密的字节数组       
                //设置密钥及密钥向量
                des.Key = Encoding.UTF8.GetBytes(strKey.Substring(0, 32));
                des.IV = iv;
                using (MemoryStream ms = new MemoryStream())
                {
                    using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
                    {
                        cs.Write(inputByteArray, 0, inputByteArray.Length);
                        cs.FlushFinalBlock();
                        byte[] cipherBytes = ms.ToArray();//得到加密后的字节数组   
                        cs.Close();
                        ms.Close();                   
                        return cipherBytes;
                    }
                }
            }
    
    
            /// <summary>
            /// AES解密
            /// </summary>
            /// <param name="inputdata">输入的数据</param>
            /// <param name="iv">向量128</param>
            /// <param name="strKey">key</param>
            /// <returns></returns>
            public static byte[] AESDecrypt(byte[] inputdata, byte[] iv, string strKey)
            {
                SymmetricAlgorithm des = Rijndael.Create();
                des.Key = Encoding.UTF8.GetBytes(strKey.Substring(0, 32));
                des.IV = iv;
                byte[] decryptBytes = new byte[inputdata.Length];
                using (MemoryStream ms = new MemoryStream(inputdata))
                {
                    using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Read))
                    {
                        cs.Read(decryptBytes, 0, decryptBytes.Length);
                        cs.Close();
                        ms.Close();
                    }
                }
                return decryptBytes;
            }
  • 相关阅读:
    F. Xor-Paths 题解(折半搜索)
    Integers Have Friends 2.0 题解(随机+同余)
    3-爬虫框架-大规模异步并发爬虫
    2-爬虫框架-网址池的实现
    1-爬虫框架-download和MySQL封装
    [gym102220I]Temperature Survey
    [atAGC034F]RNG and XOR
    [luogu5564]Say Goodbye
    [cf1349D]Slime and Biscuits
    [bzoj3569]DZY Loves Chinese II
  • 原文地址:https://www.cnblogs.com/xuxiaoshuan/p/5485777.html
Copyright © 2011-2022 走看看