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         }
  • 相关阅读:
    Linux文件权限管理
    Linux用户权限管理
    压缩,解压缩 和tar详细介绍
    grep基本详细使用
    Vim文本编辑器详细用法
    Linux命令查找文件目录
    Linux文件增删改
    Linux目录管理
    Linux修改主机名
    Linux创建高级用户并删除
  • 原文地址:https://www.cnblogs.com/LYshuqian/p/2919164.html
Copyright © 2011-2022 走看看