Java实现AES对称加密算法
Java代码实现
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey; public class AesEntriptor {
private Cipher encryptCipher; // 负责加密工作
private Cipher decryptCipher; // 负责解密工作
public AesEntriptor(String rules) throws Exception {
// 1.实例化AES算法密钥生成器
KeyGenerator keygen = KeyGenerator.getInstance("AES");
// 2.根据传入的字节数组,生成一个128位的随机源
keygen.init(128, new SecureRandom(rules.getBytes()));
// 3.生成密钥
SecretKey secretKey = keygen.generateKey();
// 4.生成Cipher对象,指定其支持AES算法
encryptCipher = Cipher.getInstance("AES");
decryptCipher = Cipher.getInstance("AES");
// 5.初始化加密对象及解密对象
encryptCipher.init(Cipher.ENCRYPT_MODE, secretKey);
decryptCipher.init(Cipher.DECRYPT_MODE, secretKey);
} public byte[] encrypt(byte[] source) throws Exception {
return encryptCipher.doFinal(source);
} public byte[] decrypt(byte[] source) throws Exception {
return decryptCipher.doFinal(source);
} public static void main(String[] args) throws Exception {
AesEntriptor aesEntriptor = new AesEntriptor("123456");
byte[] encrypt = aesEntriptor.encrypt("Napolean".getBytes());
byte[] decrypt = aesEntriptor.decrypt(encrypt);
System.out.println(new String(decrypt));
}
}
Java实现AES对称加密算法的更多相关文章
- Java 加密 AES 对称加密算法
版权声明:本文为博主原创文章,未经博主允许不得转载. [AES] 一种对称加密算法,DES的取代者. 加密相关文章见:Java 加密解密 对称加密算法 非对称加密算法 MD5 BASE64 AES R ...
- Java 加密解密 对称加密算法 非对称加密算法 MD5 BASE64 AES RSA
版权声明:本文为博主原创文章,未经博主允许不得转载. [前言] 本文简单的介绍了加密技术相关概念,最后总结了java中现有的加密技术以及使用方法和例子 [最简单的加密] 1.简单的概念 明文:加密前的 ...
- AES对称加密算法实现:Java,C#,Golang,Python
高级加密标准(Advanced Encryption Standard,简写AES),是一种用来替代DES的对称加密算法,相比DES,AES安全性更高,加密速度更快,因此被广泛使用. 理论上看,AES ...
- java的AES对称加密和解密,有偏移量
import java.math.BigDecimal; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; i ...
- JAVA加解密 -- 对称加密算法与非对称加密算法
对称加密算法:双方必须约定好算法 DES 数据加密标准:由于不断地被破解 自98年起就已经逐渐放弃使用 AES 目前使用最多的加密方式,官方并未公布加密方式已被破解,替代DES 实现和DES非常接近 ...
- JAVA中AES对称加密和解密
AES对称加密和解密 package demo.security; import java.io.IOException; import java.io.UnsupportedEncodingExce ...
- JAVA中AES对称加密和解密以及与Python兼容
引言:本文主要解决Java中用AES加密及解密,同时可通过Python脚本对Java加密后的字符进行解密的操作. 由于近期工作中用到需要使用Java对一串密钥进行加密,并且后台通过Python语言读取 ...
- AES对称加密算法原理
原著:James McCaffrey 翻译:小刀人 原文出处:MSDN Magazine November 2003 (Encrypt It) 本文的代码下载:msdnmag200311AES.exe ...
- AES对称加密算法原理(转载)
出处:http://www.2cto.com/Article/201112/113465.html 原著:James McCaffrey 翻译:小刀人 原文出处:MSDN Magazine Novem ...
随机推荐
- BZOJ1005--[HNOI2008]明明的烦恼(树的prufer编码)
1005: [HNOI2008]明明的烦恼 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 5768 Solved: 2253[Submit][Stat ...
- Flume-Spooling Directory Source 监控目录下多个新文件
使用 Flume 监听整个目录的文件,并上传至 HDFS. 一.创建配置文件 flume-dir-hdfs.conf https://flume.apache.org/FlumeUserGuide.h ...
- RecyclerView进阶:使用ItemTouchHelper实现拖拽和侧滑删除
现在RecyclerView的应用越来越广泛了,不同的应用场景需要其作出不同的改变.有时候我们可能需要实现侧滑删除的功能,比如知乎首页的侧滑删除,又或者长按Item进行拖动与其他Item进行位置的交换 ...
- UML建模综述
一.概念 UML-Unified Model Language 统一建模语言,又称标准建模语言.是用来对软件密集系统进行可视化建模的一种语言.作为一个支持模型化和软件系统开发的图形化语言,UML为软件 ...
- CefGlue获取网页源代码
1.编写一个CefStringVisitor类: public class MyStringVisitor : CefStringVisitor { private readonly TaskComp ...
- Pattern Evaluation
对相关性patten质量的常用分析指标有以下这些 其中,X^2 跟 lift不是null-invariant的,也就是说当~A~B项较多时,这两个指标不是很可靠. 据Jiawei Han所言,Kulc ...
- openstack部署dashboard
1.下载安装包 yum install openstack-dashboard 2.编辑配置文件 cp /etc/openstack-dashboard/local_settings /etc/ope ...
- es6 实现单链表
第一种/** * 链表节点类 */ class Node { constructor(ele) { this.ele = ele; this.next = null; } } /** * 链表类 */ ...
- Spring策略模式的实现
场景: 有时候一个业务方法有多个实现类,需要根据特定的情形进行业务处理. 例如:商店支付,我们可以使用支付宝.微信扫描农行.xxx行的快捷支付(而不是微信支付.支付宝支付二维码)购买商品. 实现代码( ...
- dataset的find查找功能使用
var record = dataset.find(["status"],[curstatus]); //status指的是dataset中的某个字段,curstatus指的是指定 ...