1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- {{/*
- ## Hugo Encrypt
- ### Params:
- - `password`:
- require param
- - Simple
- {{% hugo-encryptor "your password" %}}
- your content
- {{% /hugo-encryptor %}}
- */}}
- {{/* DEFAULTS */}}
- <hugo-encryptor>
- <p>以下内容被密码保护</p>
- <input id="hugo-encryptor-password" placeholder="请输入密码" />
- <input
- type="button"
- value="提交"
- onclick="hugoDecrypt(document.getElementById('hugo-encryptor-password').value)"
- />
- <cipher-text data-password="{{ .Get 0 }}" style="display:none;">
- <p id="verifyText" style="display:none;">
- The quick brown fox jumps over the lazy dog
- </p>
- {{ .Inner }}
- </cipher-text>
- <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.js"></script>
- <script>
- <!--
- let cipher = document.getElementsByTagName("cipher-text")[0];
- const hugoDecrypt = function(password) {
- try {
- let cipher_text = cipher.innerText;
- password = password.padEnd(16, "\0");
- let key = CryptoJS.enc.Utf8.parse(password);
- let decryptedData = CryptoJS.AES.decrypt(cipher_text, key, {
- iv: key,
- mode: CryptoJS.mode.CBC,
- padding: CryptoJS.pad.Pkcs7
- });
- let decryptedStr = decryptedData.toString(CryptoJS.enc.Utf8);
- if (
- decryptedStr.includes("The quick brown fox jumps over the lazy dog")
- ) {
- cipher.parentElement.outerHTML = decryptedStr;
- } else {
- alert("密码错误!");
- }
- document.getElementById("verifyText").outerHTML = "";
- } catch (error) {
- console.log(error);
- alert("密码错误!");
- }
- };
- -->
- </script>
- </hugo-encryptor>
|