引言

  这是一个有关AES加解密的方法类

一、设置AES加解密密钥:下面列出自己分配的三类密钥

        private const string UserKey = "roshan-2015-user"; //加密用户名和密码
private static readonly byte[] UserIv = { , , 0xF, , , 0xC, , 0xB, , 0x5B, 0xD, 0x17, , 0xA, , }; private const string ServerAuthTokenKey = "roshan2015server"; //加密服务端AuthToken
private static readonly byte[] ServerAuthTokenIv = { 0xC, , 0xB, , 0x5B, 0xD, , , 0xF, , , 0x17, , 0xA, , }; private const string ClientAuthTokenKey = "roshan2015client";//加密客户端AuthToken
private static readonly byte[] ClientAuthTokenIv = { 0x38, 0x31, 0x37, 0x34, 0x36, 0x33, 0x35, 0x33, 0x32, 0x31, 0x34, 0x38, 0x37, 0x36, 0x35, 0x32 };

密钥设置

二、填充方法:这里个人采用默认的填充方法

Mode:CBC

Padding:PKCS7

三、配置加解密方法

        /// <summary>
/// 加密
/// </summary>
/// <param name="toEncrypt">明文</param>
/// <param name="key">秘钥</param>
/// <param name="ivBytes">向量</param>
/// <returns>密文</returns>
public static string AESEncrypt(string toEncrypt, string key, byte[] ivBytes)
{
byte[] toEncryptBytes = System.Text.Encoding.UTF8.GetBytes(toEncrypt);
var rijndael = new RijndaelManaged();
rijndael.Key = System.Text.Encoding.UTF8.GetBytes(key);
rijndael.IV = ivBytes;
ICryptoTransform cryptoTransform = rijndael.CreateDecryptor();
byte[] resultBytes = cryptoTransform.TransformFinalBlock(toEncryptBytes, , toEncryptBytes.Length);
return Convert.ToBase64String(resultBytes);
}

加密方法

        /// <summary>
/// 解密
/// </summary>
/// <param name="toDecrypt">密文</param>
/// <param name="key">秘钥</param>
/// <param name="ivBytes">向量</param>
/// <returns>明文</returns>
private static string AESDecrypt(string toDecrypt, string key, byte[] ivBytes)
{
byte[] toDecryptBytes = Convert.FromBase64String(toDecrypt);
var rijndael = new RijndaelManaged();
rijndael.Key = System.Text.Encoding.UTF8.GetBytes(key);
rijndael.IV = ivBytes;
ICryptoTransform cryptoTransform = rijndael.CreateDecryptor();
byte[] resultArray = cryptoTransform.TransformFinalBlock(toDecryptBytes, , toDecryptBytes.Length);
return System.Text.Encoding.UTF8.GetString(resultArray);
}

解密方法

C# AES 加解密处理的更多相关文章

  1. DES,AeS加解密,MD5,SHA加密

    1.DES一共就有4个参数参与运作:明文.密文.密钥.向量.其中这4者的关系可以理解为: 密文=明文+密钥+向量: 明文=密文-密钥-向量: 为什么要向量这个参数呢?因为如果有一篇文章,有几个词重复, ...

  2. c# Aes加解密和对象序列化

    aes加解密 public class AesCryptto { private string key = "hjyf57468jhmuist"; private string i ...

  3. Java、C#双语版配套AES加解密示例

      这年头找个正经能用的东西那是真难,网上一搜索一大堆,正经能用的没几个,得,最后还是得靠自己,正巧遇上需要AES加解密的地方了,而且还是Java和C#间的相互加解密操作,这里做个备忘 这里采用的加解 ...

  4. AES加解密算法Qt实现

    [声明] (1) 本文源码 在一位未署名网友源码基础上,利用Qt编程,实现了AES加解密算法,并添加了文件加解密功能.在此表示感谢!该源码仅供学习交流,请勿用于商业目的. (2) 图片及描述 除图1外 ...

  5. aes加解密 Illegal key size

    做aes加密时,发生一个奇怪的错误,在本地环境是好的,发布到测试环境就出问题, java.security.InvalidKeyException: Illegal key size 想到本地环境之前 ...

  6. C# RSA加解密与验签,AES加解密,以及与JAVA平台的密文加解密

    前言: RSA算法是利用公钥与密钥对数据进行加密验证的一种算法.一般是拿私钥对数据进行签名,公钥发给友商,将数据及签名一同发给友商,友商利用公钥对签名进行验证.也可以使用公钥对数据加密,然后用私钥对数 ...

  7. Aes加解密,php

    Aes类库 <?php namespace Aes; class Aes { /** * var string $method 加解密方法,可通过openssl_get_cipher_metho ...

  8. cryptoJS AES 加解密简单使用

    简单记录一下,前端利用 cryptoJS 如何加解密的.主要是关于 AES 加解密. 需求描述:需要对 url 中的参数进行 AES 解密,然后再把该参数进行 MD5 加密通过接口传递. AES AE ...

  9. AES加解密程序的实现

    AES加解密程序的实现正常情况,用户不能访问sys.dbms_crypto,需要DBA授权:grant execute on dbms_crypto to crm;建立加解密的PKG_AES包:CRE ...

  10. 收银台数据库存储AES加解密

    高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法加密和解密用到的密钥是相同的,这种加密方式加密速度非常快,适合经常发送数据的场合.缺点是密钥的传输 ...

随机推荐

  1. dos命令,jdk&jre&jvm的关系,classpath和path区别

    Day01_SHJavaTraing_4-2-2017 一.学习方法 1.独立思考 2.独立整理.总结知识点 3.整理Exception报错文档 4.莫钻牛角尖 5.敲代码,敲,猛敲,死里敲 6.写代 ...

  2. Django路由中的include

    include(module,namespace = None,app_name = None)[source] include(pattern_list) include((pattern_list ...

  3. 【BZOJ3309】DZY Loves Math - 莫比乌斯反演

    题意: 对于正整数n,定义$f(n)$为$n$所含质因子的最大幂指数.例如$f(1960)=f(2^3 * 5^1 * 7^2)=3$,$f(10007)=1$,$f(1)=0$. 给定正整数$a,b ...

  4. Windows Vista 安装和使用指导 - 停止支持后的几条建议

    简介 曾经被广大网民吐槽的Windows Vista现在已经淡出了人们的视线,但仍有一些朋友想要体验一下这个操作系统.Windows Vista是Windows发展路线上的里程碑,相比之前的Windo ...

  5. [读书笔记] Python数据分析 (三) IPython

    1. 什么是IPython IPyhton 本身没有提供任何的计算或者数据分析功能,在交互式计算和软件开发者两个方面最大化地提高生产力,execute-explore instead of edit- ...

  6. python学习(一):python基础

    python两种执行方式: python解释器:py文件路径 python进入解释器:实时输入并获取执行结果 解释器路径: 在linux系统中,python文件在头部加上#!/usr/bin/env ...

  7. STM32利用TIM3产生一个1--100Hz可调频率

    目标:利用TIM3结合普通GPIO实现一个1--100HZ的可控频率,误差在0.5HZ以内 核心:要实现该功能首先要明确频率的定义,频率就是1秒内发生周期性变化的次数,例如一个正弦波,1S内,走了15 ...

  8. java JSON 和 Object 相互转换

    1.导入 jackson jar <dependency> <groupId>com.fasterxml.jackson.core</groupId> <ar ...

  9. 洛谷——P2822 组合数问题

    https://www.luogu.org/problem/show?pid=2822 题目描述 组合数C_n^mC​n​m​​表示的是从n个物品中选出m个物品的方案数.举个例子,从(1,2,3) 三 ...

  10. HDU5411CRB and Puzzle(矩阵高速幂)

    题目链接:传送门 题意: 一个图有n个顶点.已知邻接矩阵.问点能够反复用长度小于m的路径有多少. 分析: 首先我们知道了邻接矩阵A.那么A^k代表的就是长度为k的路径有多少个. 那么结果就是A^0+A ...