前端加密:
const CryptoJS = require("crypto-js"); // // Encrypt // var ciphertext = CryptoJS.AES.encrypt('password', '1234567890ABCDEF1234567890ABCDEf').toString(); // console.log(ciphertext); function encrypt(content) { var sKey = CryptoJS.enc.Utf8.parse("bj5c8d@ey9oztj1x"); var iv = CryptoJS.enc.Utf8.parse("5e8y6w45ju8w9jq8"); let srcs = CryptoJS.enc.Utf8.parse(content); let encrypted = CryptoJS.AES.encrypt(srcs, sKey, { iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); return encrypted.toString(); } //获取加密后的密码 var paawaord = " class520@" var password = encrypt(paawaord); console.log(password);
后端解密:
private static String AlgorithmProvider = "AES/CBC/PKCS5Padding";
private static String Algorithm = "AES";
private static String decryptKey = "bj5c8d@ey9oztj1x";
private static String IVCODE = "5e8y6w45ju8w9jq8";
public static String decsrypt(String encryptStr) {
try {
if(encryptStr==null){
return null;
}
KeyGenerator kgen = KeyGenerator.getInstance(Algorithm);
kgen.init(128);
Cipher cipher = Cipher.getInstance(AlgorithmProvider);
IvParameterSpec iv = new IvParameterSpec(IVCODE.getBytes());
cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(decryptKey.getBytes(), Algorithm), iv);
// 采用base64算法进行转码,避免出现中文乱码
byte[] encryptBytes = new BASE64Decoder().decodeBuffer(encryptStr);
byte[] decryptBytes = cipher.doFinal(encryptBytes);
return new String(decryptBytes);
}catch( Exception e){
throw new InterfaceException(Errorcode.DECRYPT_ERROR, "decry failure");
}
}