zoukankan      html  css  js  c++  java
  • c# AES加解密并转ASCII码

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Security.Cryptography;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace AESDecryptDemo
    {
       public class AES
        {
           public static string AESEncryptASCII(string plainStr)
           {
               StringBuilder sb = new StringBuilder();
               byte[] bKey = Encoding.UTF8.GetBytes(GetKey());
               byte[] bIV = Encoding.UTF8.GetBytes(GetIV());
               byte[] byteArray = Encoding.UTF8.GetBytes(plainStr);
    
               string encrypt = null;
               Rijndael aes = Rijndael.Create();
               using (MemoryStream mStream = new MemoryStream())
               {
                   using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write))
                   {
                       cStream.Write(byteArray, 0, byteArray.Length);
                       cStream.FlushFinalBlock();
                       encrypt = Encode(Convert.ToBase64String(mStream.ToArray()));
                   }
               }
               aes.Clear();
               return encrypt;
           }
           public static string AESEncrypt(string plainStr)
           {
               StringBuilder sb = new StringBuilder();
               byte[] bKey = Encoding.UTF8.GetBytes(GetKey());
               byte[] bIV = Encoding.UTF8.GetBytes(GetIV());
               byte[] byteArray = Encoding.UTF8.GetBytes(plainStr);
    
               string encrypt = null;
               Rijndael aes = Rijndael.Create();
               using (MemoryStream mStream = new MemoryStream())
               {
                   using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write))
                   {
                       cStream.Write(byteArray, 0, byteArray.Length);
                       cStream.FlushFinalBlock();
                       encrypt = Convert.ToBase64String(mStream.ToArray());
                   }
               }
               aes.Clear();
               return encrypt;
           }
           public static string AESDecryptASCII(string encryptStr)
           {
               encryptStr = Decode(encryptStr);
               byte[] bKey = Encoding.UTF8.GetBytes(GetKey());
               byte[] bIV = Encoding.UTF8.GetBytes(GetIV());
               byte[] byteArray = Convert.FromBase64String(encryptStr);
    
               string decrypt = null;
               Rijndael aes = Rijndael.Create();
               using (MemoryStream mStream = new MemoryStream())
               {
                   using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateDecryptor(bKey, bIV), CryptoStreamMode.Write))
                   {
                       cStream.Write(byteArray, 0, byteArray.Length);
                       cStream.FlushFinalBlock();
                       decrypt = Encoding.UTF8.GetString(mStream.ToArray());
                   }
               }
               aes.Clear();
               return decrypt;
           }
           public static string AESDecrypt(string encryptStr)
           {
               byte[] bKey = Encoding.UTF8.GetBytes(GetKey());
               byte[] bIV = Encoding.UTF8.GetBytes(GetIV());
               byte[] byteArray = Convert.FromBase64String(encryptStr);
    
               string decrypt = null;
               Rijndael aes = Rijndael.Create();
               using (MemoryStream mStream = new MemoryStream())
               {
                   using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateDecryptor(bKey, bIV), CryptoStreamMode.Write))
                   {
                       cStream.Write(byteArray, 0, byteArray.Length);
                       cStream.FlushFinalBlock();
                       decrypt = Encoding.UTF8.GetString(mStream.ToArray());
                   }
               }
               aes.Clear();
               return decrypt;
           }
           public static string Encode(string strEncode)
           {
               string strReturn = "";//  存储转换后的编码
               foreach (short shortx in strEncode.ToCharArray())
               {
                   strReturn += shortx.ToString("X");
               }
               return strReturn;
           }
    
           public static string Decode(string strDecode)
           {
               string sResult = "";
               for (int i = 0; i < strDecode.Length / 2; i++)
               {
                   sResult += (char)short.Parse(strDecode.Substring(i * 2, 2), global::System.Globalization.NumberStyles.HexNumber);
               }
               return sResult;
           }
           private static string GetKey()
           {
               return @")O[NB]6,YF}+efcaj{+oESb9d8>Z'e9M";
           }
    
           /// <summary>
           /// 获取向量
           /// </summary>
           private static string GetIV()
           {
               return @"L+~f4,Ir)b$=pkf";
           }
        }
    }
    

      

  • 相关阅读:
    错误滚动条eclipse快速定位到错误处
    路径原因linux下tomcat无法启动
    提示命令命令行将U盘文件系统转换成ntfs
    客户传真第四部分 个人理财风险防范8.当心银行汇款引发的诈骗
    请求错误[Python]网络爬虫(三):异常的处理和HTTP状态码的分类
    范围元【2013 GDCPC】有为杯 广东ACM省赛小总结
    编程程序国外程序员的BASIC情结——我的编程生涯始于BASIC
    执行取消利用timer实现的倒计时
    文件分析IDA反汇编/反编译静态分析iOS模拟器程序(二)加载文件与保存数据库
    安全业务第四部分 个人理财风险防范9.取款也要加小心
  • 原文地址:https://www.cnblogs.com/sunyj/p/5163879.html
Copyright © 2011-2022 走看看