博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AESEncryption Aes 加密
阅读量:6469 次
发布时间:2019-06-23

本文共 3644 字,大约阅读时间需要 12 分钟。

/******************************************************* *  * 作者:朱皖苏 * 创建日期:20180521 * 说明:此文件只包含一个类,具体内容见类型注释。 * 运行环境:.NET 4.0 * 版本号:1.0.0 *  * 历史记录: * 创建文件 朱皖苏 20180521 20:08 * *******************************************************/using System;using System.IO;using System.Security.Cryptography;using System.Text;namespace Dben.CommonLib.Cryptography{    ///     /// Aes 加密    ///     public class AESEncryption    {        ///         /// AES加密        ///         /// 待加密字符串        /// 16位密钥        /// 
public static string EncryptAes(string encryptString, string key) { try { byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); SymmetricAlgorithm des = Aes.Create(); des.Key = Encoding.ASCII.GetBytes(key.Substring(0, 16)); des.IV = Encoding.ASCII.GetBytes(key.Substring(16)); des.Mode = CipherMode.CBC; des.Padding = PaddingMode.Zeros; using (MemoryStream mStream = new MemoryStream()) { using (CryptoStream cStream = new CryptoStream(mStream, des.CreateEncryptor(), CryptoStreamMode.Write)) { cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); byte[] desBytes = mStream.ToArray(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < desBytes.Length; i++) { sb.Append(desBytes[i].ToString("x2")); } return sb.ToString(); } } } catch (Exception) { return encryptString; } } /// /// AES解密 /// /// 解密字符串 /// 密钥 ///
public static string DecryptAes(string decryptString, string key) { try { byte[] inputByteArray = StrToToHexByte(decryptString); SymmetricAlgorithm des = Aes.Create(); des.Key = Encoding.ASCII.GetBytes(key.Substring(0, 16)); des.IV = Encoding.ASCII.GetBytes(key.Substring(16)); des.Padding = PaddingMode.Zeros; des.Mode = CipherMode.CBC; MemoryStream mStream = new MemoryStream(); CryptoStream cStream = new CryptoStream(mStream, des.CreateDecryptor(), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); byte[] desDecryBytes = mStream.ToArray(); return Encoding.UTF8.GetString(desDecryBytes); } catch (Exception) { return decryptString; } } /// /// 转16进制字符串 /// /// 待转换字符串 ///
private static byte[] StrToToHexByte(string hexString) { try { hexString = hexString.Replace(" ", ""); if ((hexString.Length % 2) != 0) hexString += " "; byte[] returnBytes = new byte[hexString.Length / 2]; for (int i = 0; i < returnBytes.Length; i++) returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16); return returnBytes; } catch (Exception) { return null; } } }}

 

转载于:https://www.cnblogs.com/zhuwansu/p/10836960.html

你可能感兴趣的文章
Impress.js上手 - 抛开PPT、制作Web 3D幻灯片放映
查看>>
生活杂事--度过十一中秋
查看>>
Pyrex也许是一个好东西
查看>>
Java内部类总结
查看>>
NeHe OpenGL第二课:多边形
查看>>
WINFORM WPF字体颜色相互转换
查看>>
能力不是仅靠原始积累(三)
查看>>
实战:使用终端服务网关访问终端服务
查看>>
彻底学会使用epoll(一)——ET模式实现分析
查看>>
路由器的密码恢复
查看>>
【Android 基础】Android中全屏或者取消标题栏
查看>>
Xilinx 常用模块汇总(verilog)【03】
查看>>
脱离标准文档流(2)---定位
查看>>
IO流之字符流
查看>>
集合异常之List接口
查看>>
Softmax回归
查看>>
紫书 习题11-11 UVa 1644 (并查集)
查看>>
App工程结构搭建:几种常见Android代码架构分析
查看>>
使用openssl进行证书格式转换
查看>>
ZOJ 3777 Problem Arrangement
查看>>