c# aes解密 java,C#实现的AES加密解密完整实例
本文实例讲述了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加密解密完整实例相关推荐
- java 异或加密 c语言解密,java对文件简单的加密解密(异或运算)
package xxx; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; i ...
- 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)和数 ...
- Java 文件(夹)加密解密工具(附带压缩功能)
1 使用说明 CipherUtil.java ZipUtil.java ZipCipherUtil.java FileUtil.java FrmMain.java 1 使用说明 图1 主界面 图2 加 ...
- [转]DES加密 java与.net可以相互加密解密两种方法
[转]原文地址:http://jumpman.javaeye.com/blog/605996 DES加密 java与.net可以相互加密解密两种方法 文章分类:Java编程 通过这个方法可以实现jav ...
- java pgp加密_基于Java Bouncy Castle的PGP加密解密示例
# re: 基于Java Bouncy Castle的PGP加密解密示例 回复 更多评论 2016-03-02 10:32 by 毛小龙 对文件进行加密 在测试类里面已经跑通了 抽取出来调用就报这 ...
- php结合md5的加密解密,php结合md5实现的加密解密方法,php结合md5加密解密_PHP教程...
php结合md5实现的加密解密方法,php结合md5加密解密 本文实例讲述了php结合md5实现的加密解密方法.分享给大家供大家参考,具体如下: 最近在整理代码发现了一个不错的东西,结合md5的加解密 ...
- Java DES、AES、RSA、DM5读取文件加密解密
//下面代码是直接读取文件来进行加密解密,算法文件 package Test; import javax.crypto.KeyGenerator; import javax.crypto.Cipher ...
- Java使用AES算法并指定密钥种子实现加密解密
Java使用AES指定密钥实现加密解密 一.生成密钥种子 二.使用生成的密钥种子加密 三.使用生成的密钥种子解密 四.AES完整加密解密代码工具类 一.生成密钥种子 import org.apache ...
- java信用卡卡号算法,java实现主要信息的加密解密(模拟信用卡号的保存)
java实现重要信息的加密解密(模拟信用卡号的保存) package cn.felay.io; import java.io.Externalizable; import java.io.FileIn ...
- 【java】简单的文件加密解密方式
一.基础知识 1.异或加密解密方式(推荐) package com.test;import java.io.*;public class test1 {private static final int ...
最新文章
- Go 学习笔记(34)— Go 方法声明、方法调用、方法值、方法表达式、切片对象方法、指针对象方法
- 构建Hybrid应用-构建ionic开发环境
- java类中的代码块,Java开发避坑指南!
- mvc5入门示例博客(有惊喜)
- linux 下 Nginx 0.8.40的安装
- QT的QAlphaCoverage类的使用
- C++ static静态成员函数
- ubuntu man命令彩色高亮显示
- 在PLSQL中编译复杂的java(转)
- with open as f用法_UE4精品教程 | C++Tuple元组的详细用法
- Springboot连接不上mysql8_springboot连接mysql8.0问题解决
- C#笔记30:Trace、Debug和TraceSource的使用以及日志设计
- 什么是 SEO ??? 对SEO的详细介绍
- 博途SCL模板项目实例,SCL学习资料,SCL详细资料,SCL教程
- nrf52832使用ble+2.4G(Gzll)遇到的问题
- HIT软件构造第六章一二节知识点总结
- java 二叉树第n层节点数及层序遍历
- webp格式怎么转成jpg?
- CAD梦想画图中的“颜色设置”
- HTML5 - Three.js 3D特效学习
热门文章
- python好找工作吗2017-2017年 Python工程师面试经历分享(七家)
- 写作技巧~100段作文排比句(1-20段),考试一定用得上,赶紧收藏!
- note同步不及时 one_如何提高onenote同步速度?
- 使用蓝牙模块和笔记本自带蓝牙通讯
- 奇妙的裴波那契数列和黄金分割
- 使用 BulkLoad 向 HBase 中批量导入数据
- mysql 1236_MySQL 1236错误解决方法
- 77. Combinations
- 视频编码解码(H264中的profile和level)
- 凑硬币算法C语言,《凑硬币》 动态规划算法入门