引言

  这是一个有关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. [C#学习笔记之异步编程模式2]BeginInvoke和EndInvoke方法 (转载)

    为什么要进行异步回调?众所周知,普通方法运行,是单线程的,如果中途有大型操作(如:读取大文件,大批量操作数据库,网络传输等),都会导致方法阻塞,表现在界面上就是,程序卡或者死掉,界面元素不动了,不响应 ...

  2. GCC中的强符号和弱符号及强引用和弱引用

    1. 强符号和弱符号 1.1 u-boot和kernel中的__weak指令 u-boot和kernel比较普遍地使用了__weak来定义函数. 在include\linux\compiler-gcc ...

  3. Django框架详解之views

    一个简单的视图 一个视图函数,是一个简单的python函数,它接受web请求并且返回web响应.无论视图本身包含什么逻辑,都要返回响应.为了将代码放在某处,约定是将视图放置在项目或应用程序目录中的名为 ...

  4. JS中的异步

    Hello,日常更新的我“浪”回来了!!! JS中有三座高山:异步和单线程.作用域和闭包.原型原型链 今天“浪”的主题是JS中的异步和单线程的问题. 主要从这三个方面入手 一.什么是异步(与同步作比较 ...

  5. nodejs安装与概述

    第一部分:安装与测试 1 官方下载地址 https://nodejs.org/en/ 2 测试是否安装成功? window下打开CMD窗口   输入:node -v  => 显示安装的nodej ...

  6. 【codeforces 749D】Leaving Auction

    [题目链接]:http://codeforces.com/problemset/problem/749/D [题意] 有n个人在竞价; 按照时间的顺序给出n次竞价(可能有一些人没有参加竞价); 每次竞 ...

  7. NYIST 1030 Yougth's Game[Ⅲ]

    Yougth's Game[Ⅲ]时间限制:3000 ms | 内存限制:65535 KB难度:4 描述有一个长度为n的整数序列,A和B轮流取数,A先取,每次可以从左端或者右端取一个数,所有数都被取完时 ...

  8. nyoj 1189 yougth和他的朋友们 (DP)

    题目:pid=1189" target="_blank">nyoj 1189 yougth和他的朋友们 这题目是14年北京赛区的原题.讲题的时候说有三种解法,我们是 ...

  9. JQuery与CSS之图片上放置button

    position:relative日常应用的时候通常是设置给position:absolute;的父层的, 父层position:relative; 子层position:absolute;的话, 就 ...

  10. 上机题目(0基础)-计算两个正整数的最大公约数和最小公倍数(Java)

    题目例如以下: