AESUtil AES加密工具类
来源:互联网 发布:种植牙失败知乎 编辑:程序博客网 时间:2024/06/05 17:15
AES加密工具类,其中导入的jar包jdk引进去就可以用了,jdk的版本尽量大于1.5
package com.yiyong.mavenspring.demo.util;/** * @Title: AESUtil.java * @Package com.yiyong.mavenspring.demo.util * @Description: TODO(用一句话描述该文件做什么) * @author Yiyong Wu * @date 2015年12月29日 下午2:38:00 * @version V1.0 */import java.security.NoSuchAlgorithmException;import java.security.SecureRandom;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;import javax.crypto.spec.SecretKeySpec;public class AESUtil {public static void main(String[] args) {// 密钥的种子,可以是任何形式,本质是字节数组String strKey = "lttclaw";// 密钥数据byte[] rawKey = getRawKey(strKey.getBytes());// 密码的明文String clearPwd = "My world is full of wonders! No body can match my spirit";// 密码加密后的密文byte[] encryptedByteArr = encrypt(rawKey, clearPwd);String encryptedPwd = new String(encryptedByteArr);System.out.println(encryptedPwd);// 解密后的字符串String decryptedPwd = decrypt(encryptedByteArr, rawKey);System.out.println(decryptedPwd);}/** * @param rawKey * 密钥 * @param clearPwd * 明文字符串 * @return 密文字节数组 */private static byte[] encrypt(byte[] rawKey, String clearPwd) {try {SecretKeySpec secretKeySpec = new SecretKeySpec(rawKey, "AES");Cipher cipher = Cipher.getInstance("AES");cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);byte[] encypted = cipher.doFinal(clearPwd.getBytes());return encypted;} catch (Exception e) {return null;}}/** * @param encrypted * 密文字节数组 * @param rawKey * 密钥 * @return 解密后的字符串 */private static String decrypt(byte[] encrypted, byte[] rawKey) {try {SecretKeySpec secretKeySpec = new SecretKeySpec(rawKey, "AES");Cipher cipher = Cipher.getInstance("AES");cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);byte[] decrypted = cipher.doFinal(encrypted);return new String(decrypted);} catch (Exception e) {return "";}}/** * @param seed种子数据 * @return 密钥数据 */private static byte[] getRawKey(byte[] seed) {byte[] rawKey = null;try {KeyGenerator kgen = KeyGenerator.getInstance("AES");SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");secureRandom.setSeed(seed);// AES加密数据块分组长度必须为128比特,密钥长度可以是128比特、192比特、256比特中的任意一个kgen.init(128, secureRandom);SecretKey secretKey = kgen.generateKey();rawKey = secretKey.getEncoded();} catch (NoSuchAlgorithmException e) {}return rawKey;}}
3 0
- AESUtil AES加密工具类
- AESUtil AES加密/解密
- AESUtil工具类
- AES加密工具类
- AES加密工具类
- AES加密工具类
- AESutil加密
- AES 双向加密算法 AESUtil
- Android AES加密工具类
- android aes加密工具类
- AES加密解密工具类
- Android AES加密工具类
- AES加密、解密工具类
- 加密解密-AesUtil
- 【工具类】AES加密和解密
- 【工具类】AES加密和解密
- Java AES加密解密工具类
- AES加密和解密工具类
- android 按钮两次点击事件区分
- 【Struts2基础知识】
- postgresql AutoVacuum系统自动清理进程
- struts2中自带的拦截器和defaultStack拦截器栈
- HDU 1542 Atlantis (矩形面积并)
- AESUtil AES加密工具类
- iOS collectionView实现瀑布流
- 有意思网站集锦
- Curl命令
- 集成短信验证码--Mob.com
- 交叉编译参数 -I -L -l 详解
- 将 gitblog 的博客内容搬迁到 CSDN
- Caused by: java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode(
- JAVA输入输出(IO)之文件