AES加密解密工具类
来源:互联网 发布:儿童安全座椅 知乎 编辑:程序博客网 时间:2024/05/19 15:22
AES加密解密工具类
package com.demo.utils;import java.io.UnsupportedEncodingException;import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec;/** * AES加密解密工具类 * @author dongyangyang * @Date 2017/3/13 12:31 * @Version 1.0 * */public class AESUtils { private static final String AES = "AES"; /** * 必须16个字节 */ private static final String CRYPT_KEY = "dongyangyangpuff"; /** * 加密 * @param encryptStr * @return */ public static byte[] encrypt(byte[] src, String key) throws Exception { Cipher cipher = Cipher.getInstance(AES); SecretKeySpec securekey = new SecretKeySpec(key.getBytes(), AES); cipher.init(Cipher.ENCRYPT_MODE, securekey); return cipher.doFinal(src); } /** * 解密 * @param decryptStr * @return * @throws Exception */ public static byte[] decrypt(byte[] src, String key) throws Exception { Cipher cipher = Cipher.getInstance(AES); SecretKeySpec securekey = new SecretKeySpec(key.getBytes(), AES); cipher.init(Cipher.DECRYPT_MODE, securekey); return cipher.doFinal(src); } public static String byte2hex(byte[] b) { String hs = ""; String stmp = ""; for (int n = 0; n < b.length; n++) { stmp = (Integer.toHexString(b[n] & 0XFF)); if (stmp.length() == 1) hs = hs + "0" + stmp; else hs = hs + stmp; } return hs.toUpperCase(); } public static byte[] hex2byte(byte[] b) { if ((b.length % 2) != 0) throw new IllegalArgumentException("长度不是偶数"); byte[] b2 = new byte[b.length / 2]; for (int n = 0; n < b.length; n += 2) { String item = new String(b, n, 2); b2[n / 2] = (byte) Integer.parseInt(item, 16); } return b2; } /** * 解密 * @param data * @return * @throws Exception */ public final static String decrypt(String data) { try { return new String(decrypt(hex2byte(data.getBytes()), CRYPT_KEY), "UTF-8"); } catch (Exception e) { } return null; } /** * 加密 * @param data * @return * @throws UnsupportedEncodingException * @throws Exception */ public final static String encrypt(String data) throws UnsupportedEncodingException, Exception { return byte2hex(encrypt(data.getBytes("UTF-8"), CRYPT_KEY)); } public static void main(String[] args) throws UnsupportedEncodingException, Exception { String string = encrypt("曹杰"); System.out.println(string); String string2 = decrypt(string); System.out.println(string2); }}
0 0
- AES加密解密工具类
- AES加密、解密工具类
- 【工具类】AES加密和解密
- 【工具类】AES加密和解密
- Java AES加密解密工具类
- AES加密和解密工具类
- AES 对称加密解密工具类
- AES加密解密类
- 【工具类】Java实现AES算法 加密和解密
- AES算法加密解密工具类util之改进之动态AES密钥加密
- java RSA和AES加密解密工具
- AES加密工具类
- AES加密工具类
- AES加密工具类
- AES加解密工具类
- Android AES加密工具类,解决只能加密不能解密问题
- Android AES加密工具类
- AESUtil AES加密工具类
- 题目1162:I Wanna Go Home
- 扩容数据盘(Linux)
- 嵌入式Linux开发环境搭建
- MYSQL 常用命令
- Linux进程管理器
- AES加密解密工具类
- webpack与browser-sync热更新原理深度讲解
- SpringMVC教程--Validation校验
- win10 不安装oracle plsql连接远程oracle
- 进程.vs 线程.
- android学习(二十二) 传输数据使用Sync Adapters
- 【图像处理】基于opencv3.0使用StereoBM计算视差
- Android基础—Canvas API详解
- Base64加密解密工具类