记录

参考了一下网上的代码加上自已的一些想法,修改,key也可以是中文,

要引入一个aes.js的js文件。

html代码

AES加解密

这里是要加密的内容!


key:

加密 解密

如图;

javascript代码;

function getByteLen(val) {

var len = 0;

for (var i = 0; i < val.length; i++) {

if (val[i].match(/[^\x00-\xff]/ig) != null) len += 3;

else len += 1;

}

return len;

}

function onbtnEncrypto() {

var plaintText = document.getElementById("input").value;

var keyword = document.getElementById("inputkey").value;

if (plaintText.replace(/(^\s*)|(\s*$)/g, "") == '') {

alert("输入要加密的内容!");

return;

}

if (keyword.replace(/(^\s*)|(\s*$)/g, "") == '') {

alert("输入要加密的key!");

return;

}

while (getByteLen(keyword) % 8 != 0) {

keyword = keyword + "\0";

}

var key = CryptoJS.enc.Utf8.parse(keyword);

var encryptedData = CryptoJS.AES.encrypt(plaintText, key, {

mode: CryptoJS.mode.ECB,

padding: CryptoJS.pad.Pkcs7

});

encryptedData = encryptedData.ciphertext.toString();

document.getElementById("output").value = encryptedData;

}

function onbtnDecrypto() {

var encryptedData = document.getElementById("input").value;

var keyword = document.getElementById("inputkey").value;

if (encryptedData.replace(/(^\s*)|(\s*$)/g, "") == '') {

alert("输入要加密的内容!");

return;

}

if (keyword.replace(/(^\s*)|(\s*$)/g, "") == '') {

alert("输入要加密的key!");

return;

}

while (getByteLen(keyword) % 8 != 0) {

keyword = keyword + "\0";

}

var key = CryptoJS.enc.Utf8.parse(keyword);

var encryptedHexStr = CryptoJS.enc.Hex.parse(encryptedData);

var encryptedBase64Str = CryptoJS.enc.Base64.stringify(encryptedHexStr);

var decryptedData = CryptoJS.AES.decrypt(encryptedBase64Str, key, {

mode: CryptoJS.mode.ECB,

padding: CryptoJS.pad.Pkcs7

});

if (decryptedData.sigBytes < 0) {

document.getElementById("output").value = "解密失败!密文或者key错误!";

return;

}

try {

decryptedData.toString(CryptoJS.enc.Utf8)

} catch(e) {

document.getElementById("output").value = "解密失败!密文或者key错误!";

return;

}

var decryptedStr = decryptedData.toString(CryptoJS.enc.Utf8);

document.getElementById("output").value = decryptedStr;

}

效果;

加密

解密

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐