1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| //aes加密 function encrypt(word, keyy, ivv) { var key = keyy ? CryptoJS.enc.Utf8.parse(keyy) : CryptoJS.enc.Utf8.parse("1234560000000000"); //16位 var iv = ivv ? CryptoJS.enc.Utf8.parse(ivv) : CryptoJS.enc.Utf8.parse("1234567890000000"); var encrypted = ''; if (typeof (word) == 'string') { var srcs = CryptoJS.enc.Utf8.parse(word); encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); } else if (typeof (word) == 'object') { //对象格式的转成json字符串 data = JSON.stringify(word); var srcs = CryptoJS.enc.Utf8.parse(data); encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }) } return encrypted.ciphertext.toString(); } // aes解密 function decrypt(word, keyy, ivv) { var key = keyy ? CryptoJS.enc.Utf8.parse(keyy) : CryptoJS.enc.Utf8.parse("1234560000000000"); var iv = ivv ? CryptoJS.enc.Utf8.parse(ivv) : CryptoJS.enc.Utf8.parse("1234567890000000"); var encryptedHexStr = CryptoJS.enc.Hex.parse(word); var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr); var decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); return decryptedStr.toString(); } var lock = document.createElement("div"), input = document.createElement("input"), inputIvv = document.createElement("input"), btn1 = document.createElement("button"), btn2 = document.createElement("button"), markdown = document.querySelector(".markdown-body"); markdown.style.display="none" lock.id = "lock"; input.id = "lock-input"; inputIvv.id = "lock-inputIvv"; input.type="password"; inputIvv.type="password"; btn1.id = "lock-btn1"; btn2.id = "lock-btn2"; btn1.innerHTML = "解密"; btn2.innerHTML = "加密"; document.body.appendChild(lock); lock.appendChild(input); lock.appendChild(inputIvv); lock.appendChild(btn1); lock.appendChild(btn2);
btn1.onclick = function () { var keyy = input.value; var ivv = inputIvv.value; var markdownValue = markdown.innerHTML.trim(); //去除生成干扰,我的文章每次生成会自动包一层div,这一步是为了保证密文永不改变内容,你们不需要这一步 var str = markdownValue.slice(3,-4); console.log(str); var decr = decrypt(str.toString(), keyy, ivv); markdown.innerHTML = decr.trim(); markdown.style.display="block" } btn2.onclick = function () { var keyy = input.value; var ivv = inputIvv.value; var markdownValue = markdown.innerHTML.trim(); var str = markdownValue; var decr = encrypt(str.toString(), keyy, ivv); markdown.innerHTML = decr.trim(); markdown.style.display="block" }
PGSQL
|