本代码可以使用在Web中,或者其他可以出入密码的场景
在需要解密的信息不大的情况下,可以将加密后的信息放入到JS中,在输入密码后,对加密后的信息进行解密
在vue中,可以很方便的调整这个"加密后的信息"。
//经过AES加密的字符串
var encryption = [
"加密后的信息",
],
canDeCrypt = 0;
//该函数接受一个密码作为参数,并尝试使用该密码对数组中的每个加密字符串进行解密
function multiDecrypt(pwd) {
//个迭代器,它用于遍历encryption数组中的每个元素,并将其作为第一个参数传递给一个回调函数。
// 这里的回调函数使用解构赋值的方式将元素值和索引值分别赋给变量item和i。
encryption.forEach((item, i) => {
try {
//如果解密成功,则canDeCrypt将包含解密的结果,否则它将保持为0
canDeCrypt = Decrypt(item, pwd)
} catch (e) {
//如果解密过程中出现了异常,则执行一个条件语句,
// 如果canDeCrypt等于0,则将canDeCrypt的值保持为0
if (canDeCrypt == 0) {
canDeCrypt = 0
}
}
})
//根据canDeCrypt的值,决定是否弹出一个提示框。
// 如果canDeCrypt等于0,则提示密码错误,
// 否则将解密结果显示在HTML页面的result元素中
if (canDeCrypt == 0) {
alert("密碼錯誤")
} else {
//ok
document.getElementById("result").innerHTML = canDeCrypt;
}
}
//在回调函数中,Decrypt()函数被调用,
// 它使用CryptoJS库的AES.decrypt()方法和给定的密码对item进行解密。
// 解密的结果被赋值给变量canDeCrypt
function Decrypt(item, pwd) {
//该函数接受两个参数:要解密的字符串和密码。
// 它使用CryptoJS库的AES.decrypt()方法对给定的字符串进行解密,
// 并使用decodeURIComponent()将结果转换为可读的UTF-8字符串。
// 最后返回解密结果
return decodeURIComponent(
CryptoJS.AES.decrypt(
item, pwd
).toString(CryptoJS.enc.Utf8)
)
}
标签:库对,加密,JavaScript,解密,canDeCrypt,item,字符串,CryptoJS,JS
From: https://www.cnblogs.com/NetUSA/p/17208216.html