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

     1  /// AES加密
     2         /// </summary>
     3         /// <param name="inputdata">输入的数据</param>
     4         /// <param name="iv">向量128位</param>
     5         /// <param name="strKey">加密密钥</param>
     6         /// <returns></returns>
     7         public static byte[] AESEncrypt(byte[] inputdata, byte[] iv, string strKey)
     8         {
     9             //分组加密算法   
    10             SymmetricAlgorithm des = Rijndael.Create();
    11             byte[] inputByteArray = inputdata;//得到需要加密的字节数组       
    12             //设置密钥及密钥向量
    13             des.Key = Encoding.UTF8.GetBytes(strKey.Substring(0, 32));
    14             des.IV = iv;
    15             using (MemoryStream ms = new MemoryStream())
    16             {
    17                 using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
    18                 {
    19                     cs.Write(inputByteArray, 0, inputByteArray.Length);
    20                     cs.FlushFinalBlock();
    21                     byte[] cipherBytes = ms.ToArray();//得到加密后的字节数组   
    22                     cs.Close();
    23                     ms.Close();                   
    24                     return cipherBytes;
    25                 }
    26             }
    27         }
    28 
    29 
    30         /// <summary>
    31         /// AES解密
    32         /// </summary>
    33         /// <param name="inputdata">输入的数据</param>
    34         /// <param name="iv">向量128</param>
    35         /// <param name="strKey">key</param>
    36         /// <returns></returns>
    37         public static byte[] AESDecrypt(byte[] inputdata, byte[] iv, string strKey)
    38         {
    39             SymmetricAlgorithm des = Rijndael.Create();
    40             des.Key = Encoding.UTF8.GetBytes(strKey.Substring(0, 32));
    41             des.IV = iv;
    42             byte[] decryptBytes = new byte[inputdata.Length];
    43             using (MemoryStream ms = new MemoryStream(inputdata))
    44             {
    45                 using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Read))
    46                 {
    47                     cs.Read(decryptBytes, 0, decryptBytes.Length);
    48                     cs.Close();
    49                     ms.Close();
    50                 }
    51             }
    52             return decryptBytes;
    53         }
  • 相关阅读:
    Golang 用go-sql-driver 调用MySQL存储过程时的问题排查
    mysqlbinlog 查看binlog时报错unknown variable 'default-character-set=utf8'
    HBase Go客户端Row构造注意事项
    MySQL JOIN操作报错问题小解
    MySQL主从同步的一个小问题解决
    PHP 多个mysql连接的问题
    记一起动态库加载错误问题排查过程
    DNS缓存
    C输出大于127的ACSII字符
    Mint17 一些安装备忘
  • 原文地址:https://www.cnblogs.com/LYshuqian/p/2919164.html
Copyright © 2011-2022 走看看