对应java Cipher.getInstance("AES")这种情况,按描述应该是AES/ECB/PKCS5Padding,SHA1PRNG用js实现是两次sha1在截取前面
const CryptoJS = require('crypto-js');
let key = CryptoJS.SHA1(CryptoJS.SHA1(password)).toString().substring(0, 32);
//解密方法
exports.decrypt = function (word) {
let srcs = CryptoJS.enc.Base64.parse(word);
let decrypted = CryptoJS.AES.decrypt({ ciphertext: srcs }, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
let content = decrypted.toString(CryptoJS.enc.Utf8);
return content;
}
//加密方法
exports.encrypt = function (word) {
let srcs = CryptoJS.enc.Utf8.parse(word);
let encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
return encrypted.ciphertext.toString(CryptoJS.enc.Base64);
}