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);    }
原创粉丝点击