本文实例讲述了C#实现的AES加密解密。分享给大家供大家参考,具体如下:

/******************************************************************

* 创建人:HTL

* 说明:C# AES加密解密

*******************************************************************/

using System;

using System.Security.Cryptography;

using System.Text;

using System.IO;

public class Test

{

public static void Main()

{

//密码

string password="1234567890123456";

//加密初始化向量

string iv=" ";

string message=AESEncrypt("abcdefghigklmnopqrstuvwxyz0123456789",password,iv);

Console.WriteLine(message);

message=AESDecrypt("8Z3dZzqn05FmiuBLowExK0CAbs4TY2GorC2dDPVlsn/tP+VuJGePqIMv1uSaVErr",password,iv);

Console.WriteLine(message);

}

///

/// AES加密

///

/// 加密字符

/// 加密的密码

/// 密钥

///

public static string AESEncrypt(string text, string password, string iv)

{

RijndaelManaged rijndaelCipher = new RijndaelManaged();

rijndaelCipher.Mode = CipherMode.CBC;

rijndaelCipher.Padding = PaddingMode.PKCS7;

rijndaelCipher.KeySize = 128;

rijndaelCipher.BlockSize = 128;

byte[] pwdBytes = System.Text.Encoding.UTF8.GetBytes(password);

byte[] keyBytes = new byte[16];

int len = pwdBytes.Length;

if (len > keyBytes.Length) len = keyBytes.Length;

System.Array.Copy(pwdBytes, keyBytes, len);

rijndaelCipher.Key = keyBytes;

byte[] ivBytes = System.Text.Encoding.UTF8.GetBytes(iv);

rijndaelCipher.IV = new byte[16];

ICryptoTransform transform = rijndaelCipher.CreateEncryptor();

byte[] plainText = Encoding.UTF8.GetBytes(text);

byte[] cipherBytes = transform.TransformFinalBlock(plainText, 0, plainText.Length);

return Convert.ToBase64String(cipherBytes);

}

///

/// AES解密

///

///

///

///

///

public static string AESDecrypt(string text, string password, string iv)

{

RijndaelManaged rijndaelCipher = new RijndaelManaged();

rijndaelCipher.Mode = CipherMode.CBC;

rijndaelCipher.Padding = PaddingMode.PKCS7;

rijndaelCipher.KeySize = 128;

rijndaelCipher.BlockSize = 128;

byte[] encryptedData = Convert.FromBase64String(text);

byte[] pwdBytes = System.Text.Encoding.UTF8.GetBytes(password);

byte[] keyBytes = new byte[16];

int len = pwdBytes.Length;

if (len > keyBytes.Length) len = keyBytes.Length;

System.Array.Copy(pwdBytes, keyBytes, len);

rijndaelCipher.Key = keyBytes;

byte[] ivBytes = System.Text.Encoding.UTF8.GetBytes(iv);

rijndaelCipher.IV = ivBytes;

ICryptoTransform transform = rijndaelCipher.CreateDecryptor();

byte[] plainText = transform.TransformFinalBlock(encryptedData, 0, encryptedData.Length);

return Encoding.UTF8.GetString(plainText);

}

}

PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

密码安全性在线检测:

高强度密码生成器:

MD5在线加密工具:

迅雷、快车、旋风URL加密/解密工具:

在线散列/哈希算法加密工具:

希望本文所述对大家C#程序设计有所帮助。

c# aes解密 java,C#实现的AES加密解密完整实例相关推荐

  1. java 异或加密 c语言解密,java对文件简单的加密解密(异或运算)

    package xxx; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; i ...

  2. 1、【java数据安全】数据安全之加密解密(base64、MD、SHA、DES、AES、IDEA、PBE、DH、RSA、EIGamal)、数字签名(DSA、ECDSA)和数字证书介绍、应用示例详细介绍

    java数据安全 系列文章 1.[java数据安全]数据安全之加密解密(base64.MD.SHA.DES.AES.IDEA.PBE.DH.RSA.EIGamal).数字签名(DSA.ECDSA)和数 ...

  3. Java 文件(夹)加密解密工具(附带压缩功能)

    1 使用说明 CipherUtil.java ZipUtil.java ZipCipherUtil.java FileUtil.java FrmMain.java 1 使用说明 图1 主界面 图2 加 ...

  4. [转]DES加密 java与.net可以相互加密解密两种方法

    [转]原文地址:http://jumpman.javaeye.com/blog/605996 DES加密 java与.net可以相互加密解密两种方法 文章分类:Java编程 通过这个方法可以实现jav ...

  5. java pgp加密_基于Java Bouncy Castle的PGP加密解密示例

    # re: 基于Java Bouncy Castle的PGP加密解密示例  回复  更多评论 2016-03-02 10:32 by 毛小龙 对文件进行加密 在测试类里面已经跑通了 抽取出来调用就报这 ...

  6. php结合md5的加密解密,php结合md5实现的加密解密方法,php结合md5加密解密_PHP教程...

    php结合md5实现的加密解密方法,php结合md5加密解密 本文实例讲述了php结合md5实现的加密解密方法.分享给大家供大家参考,具体如下: 最近在整理代码发现了一个不错的东西,结合md5的加解密 ...

  7. Java DES、AES、RSA、DM5读取文件加密解密

    //下面代码是直接读取文件来进行加密解密,算法文件 package Test; import javax.crypto.KeyGenerator; import javax.crypto.Cipher ...

  8. Java使用AES算法并指定密钥种子实现加密解密

    Java使用AES指定密钥实现加密解密 一.生成密钥种子 二.使用生成的密钥种子加密 三.使用生成的密钥种子解密 四.AES完整加密解密代码工具类 一.生成密钥种子 import org.apache ...

  9. java信用卡卡号算法,java实现主要信息的加密解密(模拟信用卡号的保存)

    java实现重要信息的加密解密(模拟信用卡号的保存) package cn.felay.io; import java.io.Externalizable; import java.io.FileIn ...

  10. 【java】简单的文件加密解密方式

    一.基础知识 1.异或加密解密方式(推荐) package com.test;import java.io.*;public class test1 {private static final int ...

最新文章

  1. Go 学习笔记(34)— Go 方法声明、方法调用、方法值、方法表达式、切片对象方法、指针对象方法
  2. 构建Hybrid应用-构建ionic开发环境
  3. java类中的代码块,Java开发避坑指南!
  4. mvc5入门示例博客(有惊喜)
  5. linux 下 Nginx 0.8.40的安装
  6. QT的QAlphaCoverage类的使用
  7. C++ static静态成员函数
  8. ubuntu man命令彩色高亮显示
  9. 在PLSQL中编译复杂的java(转)
  10. with open as f用法_UE4精品教程 | C++Tuple元组的详细用法
  11. Springboot连接不上mysql8_springboot连接mysql8.0问题解决
  12. C#笔记30:Trace、Debug和TraceSource的使用以及日志设计
  13. 什么是 SEO ??? 对SEO的详细介绍
  14. 博途SCL模板项目实例,SCL学习资料,SCL详细资料,SCL教程
  15. nrf52832使用ble+2.4G(Gzll)遇到的问题
  16. HIT软件构造第六章一二节知识点总结
  17. java 二叉树第n层节点数及层序遍历
  18. webp格式怎么转成jpg?
  19. CAD梦想画图中的“颜色设置”
  20. HTML5 - Three.js 3D特效学习

热门文章

  1. python好找工作吗2017-2017年 Python工程师面试经历分享(七家)
  2. 写作技巧~100段作文排比句(1-20段),考试一定用得上,赶紧收藏!
  3. note同步不及时 one_如何提高onenote同步速度?
  4. 使用蓝牙模块和笔记本自带蓝牙通讯
  5. 奇妙的裴波那契数列和黄金分割
  6. 使用 BulkLoad 向 HBase 中批量导入数据
  7. mysql 1236_MySQL 1236错误解决方法
  8. 77. Combinations
  9. 视频编码解码(H264中的profile和level)
  10. 凑硬币算法C语言,《凑硬币》 动态规划算法入门