在Java中实现数据加密和解密可以使用Java Cryptography Extension(JCE)提供的密钥管理和密码生成 API。JCE支持很多种加密算法,如DES、AES、RSA等。以下是使用AES算法进行数据加密和解密的示例代码:
// 加密 public static String encrypt(String data, String key) throws Exception { SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES"); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, skeySpec); byte[] encrypted = cipher.doFinal(data.getBytes("UTF-8")); return Base64.getEncoder().encodeToString(encrypted); }
// 解密 public static String decrypt(String encryptedData, String key) throws Exception { SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES"); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.DECRYPT_MODE, skeySpec); byte[] original = cipher.doFinal(Base64.getDecoder().decode(encryptedData)); return new String(original,"UTF-8"); }
其中data为需要加密的数据,key为加密密钥。要确保key长度符合算法要求。加密后的数据可以进行Base64编码以便于传输。解密时传入base64编码后的加密数据以及密钥即可获得原始数据。