JAVA中使用AES加密
来源:互联网 发布:jb是什么意思网络用语 编辑:程序博客网 时间:2024/05/03 20:19
/*待加密的数据*/byte[] data = "ABCDEFGHIJKLMNOP".getBytes(Charset.defaultCharset());/*用来存储加密后的数据*/byte[] encryptDate = new byte[data.length];/*密钥*/byte[] key = "1234567890123456".getBytes(Charset.defaultCharset());/*初始向量IV*/byte[] iv = "1234567890123456".getBytes(Charset.defaultCharset());
1.首先是创建一个加密器Cipher:
Cipher encoder = Cipher.getInstance("AES/CBC/NoPadding");
2.创建一个SecretKeySpec密钥对象:
SecretKeySpec keySpec = new SecretKeySpec(key, "AES");
3.创建初始向量IV(CBC模式):
IvParameterSpec ivParam = new IvParameterSpec(iv);
4.初始化加密器:
encoder.init(Cipher.ENCRYPT_MODE, keySpec, ivParam);
5.执行加密:
encryptData = encoder.doFinal(data);
完整代码:
import java.nio.charset.Charset;import java.security.InvalidAlgorithmParameterException;import java.security.InvalidKeyException;import java.security.NoSuchAlgorithmException;import java.util.Arrays;import javax.crypto.BadPaddingException;import javax.crypto.Cipher;import javax.crypto.IllegalBlockSizeException;import javax.crypto.NoSuchPaddingException;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.SecretKeySpec;public class AES { /** * @param args the command line arguments */ public static void main(String[] args) { byte[] data = "ABCDEFGHIJKLMNOP".getBytes(Charset.defaultCharset()); byte[] encryptData = new byte[data.length]; byte[] key = "1234567890123456".getBytes(Charset.defaultCharset()); byte[] iv = "1234567890123456".getBytes(Charset.defaultCharset()); SecretKeySpec keySpec = new SecretKeySpec(key, "AES"); IvParameterSpec ivParam = new IvParameterSpec(iv); try{ Cipher encoder = Cipher.getInstance("AES/CBC/NoPadding"); encoder.init(Cipher.ENCRYPT_MODE,keySpec,ivParam); encryptData = encoder.doFinal(data); }catch(NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | InvalidAlgorithmParameterException | IllegalBlockSizeException | BadPaddingException e){ /*do something*/ } }}
0 0
- JAVA中使用AES加密
- java中AES加密的简单使用
- java使用AES加密
- java使用AES加密
- java使用AES加密
- JAVA AES加密使用
- workerman中使用aes加密
- Java环境使用AES加密
- Java中使用AES加密的简单示例
- Java中使用AES对数据进行加密
- 如何在java中使用Aes算法对密码加密
- java使用AES加密解密 AES-128-ECB加密
- VS中使用openssl/aes加密解密
- JAVA中AES加密和解密
- JAVA中AES对称加密和解密
- JAVA中AES对称加密和解密
- Aes使用Java加密C#解密
- 使用AES,java加密与js解密
- 数据结构实验之二叉树一:树的同构
- 浅谈Java读取Csv实践(javacsv)
- OC基础 :Block(据说是重难点) 数组高级
- [转]程序员练手小项目
- 关于在android开发中使用jsoup的详解
- JAVA中使用AES加密
- 搭建Erlang语言开发环境(文本编辑器+Erlang OTP,不是绑定IDE的环境)
- 禅与填坑艺术-0
- No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s)
- v7包下在非AppCompatActivity添加Toolbar
- 反射+工程模式
- JAVA反射系列之Method,java.lang.reflect.Method的使用
- AJAX 跨域请求 - JSONP获取JSON数据
- LightOJ 1297 - Largest Box (一元三次方程求最大值)