java 下的 AES javax.crypto包 加密解密算法示例
来源:互联网 发布:网络贷款需要什么资料 编辑:程序博客网 时间:2024/05/16 17:03
Java Aes-CBC加密,用JAVA原生的lib做的加密解密示例,这里需要注意的是,加密的结果需要转换一下格式
// private static String sKey="123456";private static final byte[] INIT_VECTOR = { 0x31, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x38, 0x27, 0x36, 0x35, 0x33, 0x23, 0x32, 0x33 }; public static String encrypt(String sSrc, String sKey) throws Exception { Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); byte[] raw = sKey.getBytes(); SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES"); IvParameterSpec iv = new IvParameterSpec(INIT_VECTOR); cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv); byte[] encrypted = cipher.doFinal(sSrc.getBytes()); return byteToHexString(encrypted);} public static String decrypt(String sSrc, String sKey) throws Exception { try { byte[] raw = sKey.getBytes(); SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES"); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); IvParameterSpec iv = new IvParameterSpec(INIT_VECTOR); cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv); byte[] encrypted1 = hexToBytes(sSrc); byte[] original = cipher.doFinal(encrypted1); return new String(hexToBytes(byteToHexString(original))); } catch (Exception ex) { return null; }} public static String byteToHexString(byte[] bytes) { StringBuffer sb = new StringBuffer(bytes.length); String sTemp; for (int i = 0; i < bytes.length; i++) { sTemp = Integer.toHexString(0xFF & bytes[i]); if (sTemp.length() < 2) sb.append(0); sb.append(sTemp.toLowerCase()); } return sb.toString(); } public static byte[] hexToBytes(String s) {s = s.toUpperCase();int len = s.length() / 2;int ii = 0;byte[] bs = new byte[len];char c;int h;for (int i = 0; i < len; i++) {c = s.charAt(ii++);if (c <= '9') {h = c - '0';} else {h = c - 'A' + 10;}h <<= 4;c = s.charAt(ii++);if (c <= '9') {h |= c - '0';} else {h |= c - 'A' + 10;}bs[i] = (byte) h;}return bs;}
阅读全文
0 0
- java 下的 AES javax.crypto包 加密解密算法示例
- java 下的 AES org.bouncycastle.crypto 包加密解密算法示例
- Java AES 加密 解密 示例
- Java AES加密解密示例
- AES加密解密算法的Java实现
- Java加密解密算法-AES加密解密
- crypto前台AES加密,后台AES解密
- Java AES加密解密算法
- Aes加密/解密示例
- Java的AES加密解密
- javax.crypto.Cipher类--加密和解密
- JAVA实现AES的加密和解密算法
- JAVA 下的 pgp加密解密示例
- AES加密/解密算法
- AES加密解密算法
- JAVA AES对称加密解密算法
- java AES 128 位加密解密算法
- AES加密解密算法Java实现
- 【Java】各种进制的转换函数
- 第一章 UML简介
- COdeforces 443A
- TableView之编辑模式
- Picasso的封装(一)
- java 下的 AES javax.crypto包 加密解密算法示例
- Android Studio Live Templates使用详解,提高敲代码的速度
- 行式数据库与列式数据区别
- Codevs1010 过河卒 【简单DP】【细心】
- Spring的自动装配
- python学习-day1-数据类型&数据结构
- Unity3D学习笔记(二):C#学习
- SGI STL(一)——初识STL
- Java集合Collection转List