AES加密工具类
来源:互联网 发布:怎么举报淘宝黄牛 编辑:程序博客网 时间:2024/06/06 03:16
private static final String CHARSET = "UTF-8"; /** * 加密 * * @param content * @param secretKey * @return */ public static String encrypt(String content, String secretKey) { try { byte[] enCodeFormat = parseHexStr2Byte(secretKey); SecretKey secretKeyRetrieved = new SecretKeySpec(enCodeFormat, "AES"); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, secretKeyRetrieved); return Base64.encodeBase64String(cipher.doFinal(content .getBytes(CHARSET))); } catch (Exception e) { e.printStackTrace(); } return null; }
/** * 解密 * @param base64Content * @param secretKey * @return */ public static String decrypt(String base64Content, String secretKey) { try { byte[] enCodeFormat = parseHexStr2Byte(secretKey); SecretKey secretKeyRetrieved = new SecretKeySpec(enCodeFormat, "AES"); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.DECRYPT_MODE, secretKeyRetrieved); byte[] message = Base64.decodeBase64(base64Content); return new String(cipher.doFinal(message), CHARSET); } catch (Exception e) { e.printStackTrace(); } return null; }
/** * 将16进制转换为二进制 * * @param hexStr * @return */ private static byte[] parseHexStr2Byte(String hexStr) { if (hexStr.length() < 1) return null; byte[] result = new byte[hexStr.length() / 2]; for (int i = 0; i < hexStr.length() / 2; i++) { int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16); int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2), 16); result[i] = (byte) (high * 16 + low); } return result; }
测试
public static void main(String[] args) { String secretKey = Md5Util.encode(UUIDUtil.genId32()); String content = "{\"imei\":\"123456789\"}"; String encryptStr = encrypt(content, secretKey); System.err.println("加密后:" + encryptStr); String decryptStr = decrypt(encryptStr, secretKey); System.err.println("解密后:" + decryptStr); }
阅读全文
0 0
- AES加密工具类
- AES加密工具类
- AES加密工具类
- Android AES加密工具类
- AESUtil AES加密工具类
- android aes加密工具类
- AES加密解密工具类
- Android AES加密工具类
- AES加密、解密工具类
- 【工具类】AES加密和解密
- 【工具类】AES加密和解密
- Java AES加密解密工具类
- AES加密和解密工具类
- AES 对称加密解密工具类
- AES工具加密
- AES算法加密解密工具类util之改进之动态AES密钥加密
- 【工具类】Java实现AES算法 加密和解密
- RSA/AES加密工具类(Linux/Windows通用)
- 【常用函数使用总结】php $_SERVER相关常用
- Python核心团队计划2020年停止支持Python2,NumPy宣布停止支持计划表
- Centos创建sudo用户并且免输sudo密码
- AboutYun Resources
- Mybatis增强注解
- AES加密工具类
- 加密解密 签名验签学习笔记
- Canvas的使用
- origin相关绘图操作
- android tcp客户端 封装
- AttributeError: 'module' object has no attribute 'histogram_summary'
- Spring Data Jpa 实体类自动创建数据库表失败解决
- Docker网络详解
- td 单击事件