欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java 將json字符加密

Json是一種輕量級(jí)的數(shù)據(jù)交換格式,常用于前后端數(shù)據(jù)的傳遞。為了保護(hù)數(shù)據(jù)的安全性,我們可能需要在傳輸過程中對(duì)Json字符串進(jìn)行加密。而在Java中,我們可以使用多種加密算法來實(shí)現(xiàn)Json字符串的加密。

一種常用的加密算法是AES對(duì)稱加密。我們可以使用javax.crypto包下的Cipher類來實(shí)現(xiàn)AES加密。以下是一個(gè)示例:

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
public class AesEncryptor {
// 密鑰長(zhǎng)度必須為16、24或32個(gè)字符
private static final byte[] KEY = "1234567812345678".getBytes();
private static final String ALGORITHM = "AES/ECB/PKCS5Padding";
public static String encrypt(String json) throws Exception {
Cipher cipher = Cipher.getInstance(ALGORITHM);
SecretKeySpec keySpec = new SecretKeySpec(KEY, "AES");
cipher.init(Cipher.ENCRYPT_MODE, keySpec);
byte[] encrypted = cipher.doFinal(json.getBytes());
return Base64.getEncoder().encodeToString(encrypted);
}
public static String decrypt(String encryptedJson) throws Exception {
Cipher cipher = Cipher.getInstance(ALGORITHM);
SecretKeySpec keySpec = new SecretKeySpec(KEY, "AES");
cipher.init(Cipher.DECRYPT_MODE, keySpec);
byte[] decrypted = cipher.doFinal(Base64.getDecoder().decode(encryptedJson));
return new String(decrypted);
}
}

上述代碼中,我們使用了ECB模式和PKCS5Padding填充。這里的密鑰長(zhǎng)度為16個(gè)字符。注意,ECB模式存在安全問題,因此在實(shí)際使用中應(yīng)該使用更加安全的CBC模式。

加密后的Json字符串可以使用Base64編碼進(jìn)行傳輸。在前端接收到數(shù)據(jù)后,可以使用相同的密鑰和算法進(jìn)行解密。以下是解密示例:

var encryptedJson = "U2FsdGVkX1+g/x...kH";
var decryptedJson = "";
$.ajax({
url: "/decrypt",
type: "POST",
data: { json: encryptedJson },
success: function(data) {
decryptedJson = data;
// 處理解密后的Json字符串
}
});

通過上述方式,我們可以保證Json字符串在傳輸過程中的安全性。