前端用AES加密,后端java怎么解密
时间: 2023-09-14 13:09:23 浏览: 98
aes加密前端js+后台解密
前端使用AES加密是为了保护数据的安全性,防止数据被篡改或者被恶意攻击。后端Java可以使用相应的解密方法来解密AES加密的数据,下面是代码示例:
前端加密代码:
```javascript
function aesEncrypt(data, key) {
var aesKey = CryptoJS.enc.Utf8.parse(key);
var encrypted = CryptoJS.AES.encrypt(data, aesKey, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString();
}
var data = "Hello World!";
var key = "1234567890123456";
var encryptedData = aesEncrypt(data, key);
console.log(encryptedData); // 输出: U2FsdGVkX1+0+H3LX/3jvK3b9b0O2Z9M1QfzMN5eK4=
```
后端解密代码:
```java
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
public class AesUtil {
// AES解密方法
public static String aesDecrypt(String encryptedData, String key) {
try {
SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
byte[] decryptedBytes = cipher.doFinal(Base64.decodeBase64(encryptedData));
return new String(decryptedBytes);
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
public static void main(String[] args) {
// 假设前端使用AES加密的数据为:U2FsdGVkX1+0+H3LX/3jvK3b9b0O2Z9M1QfzMN5eK4=
String encryptedData = "U2FsdGVkX1+0+H3LX/3jvK3b9b0O2Z9M1QfzMN5eK4=";
String key = "1234567890123456";
// 解密数据
String decryptedData = aesDecrypt(encryptedData, key);
System.out.println(decryptedData); // 输出: Hello World!
}
}
```
以上代码假设前端使用AES加密数据,后端使用解密方法对数据进行解密,然后返回解密后的数据给前端。在实际应用中,可以根据具体需要进行调整。需要注意的是,前后端使用的秘钥必须相同,否则无法解密。
阅读全文