JSON是一種輕量級的數據交換格式,經常在Web應用程序之間進行數據傳遞。為了保障數據的安全,我們通常需要對其進行加密解密。在JAVA中,我們可以使用javax.crypto包進行加密/解密操作,并使用第三方工具庫對JSON對象進行操作。
//JSON加密方法 public String encrypt(String data, SecretKeySpec key) throws Exception { Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, key); byte[] encryptedBytes = cipher.doFinal(data.getBytes()); return Base64.getEncoder().encodeToString(encryptedBytes); } //JSON解密方法 public String decrypt(String encryptedData, SecretKeySpec key) throws Exception { Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, key); byte[] encryptedBytes = Base64.getDecoder().decode(encryptedData.getBytes()); byte[] decryptedBytes = cipher.doFinal(encryptedBytes); return new String(decryptedBytes); }
使用這些方法對JSON對象進行加解密。
//使用Gson庫將JSON字符串轉換為Java對象 Gson gson = new Gson(); MyObject myObject = gson.fromJson(jsonString, MyObject.class); //加密MyObject對象 String encryptedJsonString = encrypt(gson.toJson(myObject), key); //解密加密后的JSON String decryptedJsonString = decrypt(encryptedJsonString, key); //將JSON字符串轉換回Java對象 MyObject decryptedMyObject = gson.fromJson(decryptedJsonString, MyObject.class);
這樣,在Web應用程序中傳輸的JSON數據將會經過加密和解密,大大提高了數據的安全性。