java 加密、解密
阿新 • • 發佈:2018-12-15
一、加解密變數
public static String AES_SALT = "0123456789abcdef"; // 自定義該值
二、加密
/** * 加密 * * @param data 要加密的資料 * @param key 加鹽,例:key = AES_SALT * @return * @throws Exception */ public static String enAes(String data, String key) throws Exception { Cipher cipher = Cipher.getInstance("AES"); SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES"); cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec); byte[] encryptedBytes = cipher.doFinal(data.getBytes()); return new BASE64Encoder().encode(encryptedBytes); }
三、解密
/** * 解密 * * @param data 要解密的資料 * @param key 加鹽,例:key = AES_SALT * @return * @throws Exception */ public static String deAes(String data, String key) throws Exception { Cipher cipher = Cipher.getInstance("AES"); SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES"); cipher.init(Cipher.DECRYPT_MODE, secretKeySpec); byte[] cipherTextBytes = new BASE64Decoder().decodeBuffer(data); byte[] decValue = cipher.doFinal(cipherTextBytes); return new String(decValue); }