John_Kong19 发表于 2013-2-3 10:29:37

Java AES加密实例

package com.encrypt.hello;import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;public class AES {private final static String algorithm = "AES";/** * BASE64解密 ** @param key * @return * @throws Exception */public static byte[] decryptBASE64(String key) throws Exception {return (new BASE64Decoder()).decodeBuffer(key);}/** * BASE64加密 ** @param key * @return * @throws Exception */public static String encryptBASE64(byte[] key) throws Exception {return (new BASE64Encoder()).encodeBuffer(key);}/** * 加密 ** @param data * @param rawKey * @return * @throws Exception */public static String encrypt(String data, String rawKey) {byte[] key = rawKey.getBytes();// Instantiate the ciphertry {SecretKeySpec skeySpec = new SecretKeySpec(key, algorithm);Cipher cipher = Cipher.getInstance(algorithm);cipher.init(Cipher.ENCRYPT_MODE, skeySpec);byte[] encrypted = cipher.doFinal(data.getBytes());return encryptBASE64(encrypted);} catch (Exception e) {// App.log.info("AES", "获取加密串出错," + e.getMessage());return "";}}/** * 解密 ** @param encrypted * @param rawKey * @return */public static String decrypt(String encrypted, String rawKey) {try {byte[] tmp = decryptBASE64(encrypted);byte[] key = rawKey.getBytes();SecretKeySpec skeySpec = new SecretKeySpec(key, algorithm);Cipher cipher = Cipher.getInstance(algorithm);cipher.init(Cipher.DECRYPT_MODE, skeySpec);byte[] decrypted = cipher.doFinal(tmp);return new String(decrypted);} catch (Exception e) {// App.log.info("AES", "获取解密串出错," + e.getMessage());return "";}}public static void main(String[] args) throws Exception {String data = "00";String key = "0123456789123456";System.out.println("密钥为:" + key);long lStart = System.currentTimeMillis();// 加密String encrypted = encrypt(data, key);System.out.println("原文:" + data);System.out.println("加密后:" + encrypted);long lUseTime = System.currentTimeMillis() - lStart;System.out.println("加密耗时:" + lUseTime + "毫秒");System.out.println();// 解密lStart = System.currentTimeMillis();String decrypted = decrypt(encrypted, key);// 解密串System.out.println("解密后: " + decrypted);lUseTime = System.currentTimeMillis() - lStart;System.out.println("解密耗时:" + lUseTime + "毫秒");}}
页: [1]
查看完整版本: Java AES加密实例