var crypro_js = require("crypto-js"); var source_data = "你好,世界!" var aes_key = "1234567890abcdef" var iv = "abcdef1234567890"; var byte_iv = crypro_js.enc.Utf8.parse(iv); var key = crypro_js.enc.Utf8.parse(aes_key); var data = crypro_js.enc.Utf8.parse(source_data); function aes_ecb_encrypt() { var encrypted = crypro_js.AES.encrypt(data, key, { mode: crypro_js.mode.ECB, // 工作模式 padding: crypro_js.pad.Pkcs7 // 填充模式 }) return btoa(encrypted.toString()); // base64 返回 } function aes_ecb_decrypt() { var encrypt_data = atob(aes_ecb_encrypt()); var decrypted = crypro_js.AES.decrypt(encrypt_data, key, { mode: crypro_js.mode.ECB, // 工作模式 padding: crypro_js.pad.Pkcs7 // 填充模式 }) return decrypted.toString(crypro_js.enc.Utf8); } console.log("密文结果: ", aes_ecb_encrypt()) console.log("明文结果: ", aes_ecb_decrypt()) function aes_cbc_encrypt() { var encrypted = crypro_js.AES.encrypt(data, key, { iv: byte_iv, mode: crypro_js.mode.CBC, // 工作模式 padding: crypro_js.pad.Pkcs7 // 填充模式 }) return btoa(encrypted.toString()); } function aes_cbc_decrypt() { var encrypt_data = atob(aes_cbc_encrypt()); var decrypted = crypro_js.AES.decrypt(encrypt_data, key, { iv: byte_iv, mode: crypro_js.mode.CBC, // 工作模式 padding: crypro_js.pad.Pkcs7 // 填充模式 }) return decrypted.toString(crypro_js.enc.Utf8); } console.log("CBC 密文结果: ", aes_cbc_encrypt()); console.log("CBC 明文结果: ", aes_cbc_decrypt());