Base64(AES128(字段,秘钥))对称加密
代码实现如下:
public class SecurityAESUtils { private static String AES_KEY = "123456789qazwsx#"; private static String AES_MODE = "AES/ECB/PKCS5Padding"; private Key key; private static SecurityAESUtils securityAESUtils; public static SecurityAESUtils getInstance() { if(securityAESUtils == null) { securityAESUtils = new SecurityAESUtils(); } return securityAESUtils; } public static byte[] encryptECB(String data, String AES_KEY) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException { Cipher cipher = Cipher.getInstance(AES_MODE); cipher.init(Cipher.ENCRYPT_MODE,new SecretKeySpec(AES_KEY.getBytes(),"AES")); byte[] result = cipher.doFinal(data.getBytes()); return result; } public static byte[] decryptEBC(byte[] data,String AES_KEY) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException { Cipher cipher = null; cipher = Cipher.getInstance(AES_MODE); cipher.init(Cipher.DECRYPT_MODE,new SecretKeySpec(AES_KEY.getBytes(), "AES")); byte[] result = cipher.doFinal(data); return result; } public static void main(String[] args) throws NoSuchPaddingException, IllegalBlockSizeException, NoSuchAlgorithmException, BadPaddingException, InvalidKeyException { String data = "367601198908244058"; byte[] ciphertext = encryptECB(data,AES_KEY); String encodeString = Base64.getEncoder().encodeToString(ciphertext); System.out.println("ECB 模式加密结果(Base64):" + encodeString); //解密 byte[] decodeByte = Base64.getDecoder().decode(encodeString); String decodeString = new String(SecurityAESUtils.decryptEBC(decodeByte,AES_KEY)); System.out.printf("ECB 模式解密结果(Base64):"+decodeString); } }
参考: http://www.viiis.cn/news/show_117504.html