AES加密

  前端加密:

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");
        }

    }

上一篇:前端AES加密


下一篇:微信小程序使用 Crypto-js MD5加密