_includes/encrypted.html in no-style-please2-0.5.0 vs _includes/encrypted.html in no-style-please2-0.5.1
- old
+ new
@@ -1,61 +1,126 @@
<div id="encrypted">
-<h3> 内容已经加密</h3>
-<input style="width:100%; " type="password" id="passwordinput" placeholder="输入密码"></input>
-<p>
-<input type="button" value="解密" id="DecryptBtn"/>
-</div>
-<div id="decrypted">
-</div>
-<script src="//cdn.jsdelivr.net/gh/vitock/jsdelivr@0.1.1/js/salsa20.min.js"></script>
-<script src="//cdn.jsdelivr.net/gh/vitock/jsdelivr@0.1.1/js/base64.js"></script>
-<script src="//cdn.jsdelivr.net/gh/vitock/jsdelivr@0.1.1/js/md5.js"></script>
-<script>
- var encryptedContent = '{{ content | contentEncrypt:page}}'
-
- function hexToUint8Arr(hexString){
- return new Uint8Array(hexString.match(/.{1,2}/g).map(byte => parseInt(byte, 16)));
- }
- function decrypt (key0){
- // const key = Uint8Array([...]); // 32 bytes key
- var key = new TextEncoder("utf-8").encode(md5(key0));
+ {% if site.theme_config.encrypt_title %}
+ <h3> {{ site.theme_config.encrypt_title }} </h3>
+ {% else %}
+ <h3>Content is Encrypted</h3>
+ {% endif %}
+ <input style="width:100%; " type="password" id="passwordinput" placeholder="输入密码"></input>
+ <p>
+ {% if site.theme_config.decrypt_btn %}
+ <input type="button" value= "{{ site.theme_config.decrypt_btn }}" id="DecryptBtn"/>
+ {% else %}
+ <input type="button" value= "Decrypt" id="DecryptBtn"/>
+ {% endif %}
+
+ </div>
+
+ <div id="decrypted" style = "display:none">
+ <p>
+ <div>
+ {% if site.theme_config.encrypt_btn %}
+ <input type="button" value= "{{ site.theme_config.encrypt_btn }}" id="EncryptBtn"/>
+ {% else %}
+ <input type="button" value= "Encrypt" id="EncryptBtn"/>
+ {% endif %}
+ </div>
+ <div id = 'decryptContent'>
+ </div>
+ </div>
+ <script src="//cdn.jsdelivr.net/gh/vitock/jsdelivr@0.1.1/js/salsa20.min.js"></script>
+ <script src="//cdn.jsdelivr.net/gh/vitock/jsdelivr@0.1.1/js/base64.js"></script>
+ <script src="//cdn.jsdelivr.net/gh/vitock/jsdelivr@0.1.1/js/md5.js"></script>
+ <script>
+ !function(){
+ var encryptedContent = '{{ content | contentEncrypt:page}}'
+
+ function hexToUint8Arr(hexString){
+ return new Uint8Array(hexString.match(/.{1,2}/g).map(byte => parseInt(byte, 16)));
+ }
+ function decrypt (key0){
+ // const key = Uint8Array([...]); // 32 bytes key
+ var key = new TextEncoder("utf-8").encode(md5(key0));
+
+ /// hex
+ var nonceStr = encryptedContent.substring(0,16)
+ var nonce = hexToUint8Arr(nonceStr)
+
+ const msg = encryptedContent.substring(17)
+ const message = Base64.toUint8Array(msg)
+ // Encrypt //
+ const decrypt = new JSSalsa20(key, nonce).decrypt(message);
+ var plain = new TextDecoder("utf-8").decode(decrypt)
+ var check = md5(plain)
+ if(check.indexOf(nonceStr) == 0){
+ setKey(key0)
+ /// hide input
+ document.getElementById("encrypted").style.display = 'none'
+ // / show decrypted
+
+ document.getElementById("decrypted").style.display = 'block'
+ document.getElementById("decryptContent").innerHTML = plain
+
+ setTimeout(function(){
+ var loadevent = document.createEvent("Event")
+ loadevent.initEvent("load", true, true)
+
+ var DOMContentLoaded_event = document.createEvent("Event")
+ DOMContentLoaded_event.initEvent("DOMContentLoaded", true, true)
+
+ window.dispatchEvent(loadevent)
+ window.dispatchEvent(DOMContentLoaded_event)
+ console.log('333a334a')
+
+ }, 500);
+
+ }else{
+ alert("wrong password.")
+ }
+ }
- /// hex
- var nonceStr = encryptedContent.substring(0,16)
- var nonce = hexToUint8Arr(nonceStr)
-
- const msg = encryptedContent.substring(17)
- const message = Base64.toUint8Array(msg)
- // Encrypt //
- const decrypt = new JSSalsa20(key, nonce).decrypt(message);
- var plain = new TextDecoder("utf-8").decode(decrypt)
- var check = md5(plain)
- if(check.indexOf(nonceStr) == 0){
+ document.getElementById("DecryptBtn").onclick = function(){
+ var key = document.getElementById("passwordinput").value
+ decrypt(key);
+ }
+
+ document.getElementById("EncryptBtn").onclick = function(){
/// hide input
- document.getElementById("encrypted").style.display = 'none'
+ document.getElementById("encrypted").style.display = 'block'
// / show decrypted
- document.getElementById("decrypted").innerHTML = plain
-
- setTimeout(function(){
- var loadevent = document.createEvent("Event")
- loadevent.initEvent("load", true, true)
-
- var DOMContentLoaded_event = document.createEvent("Event")
- DOMContentLoaded_event.initEvent("DOMContentLoaded", true, true)
-
- window.dispatchEvent(loadevent)
- window.dispatchEvent(DOMContentLoaded_event)
- console.log('333a334a')
-
- }, 500);
-
- }else{
- alert("wrong password.")
- }
- }
+ document.getElementById("decrypted").style.display = "none"
- document.getElementById("DecryptBtn").onclick = function(){
- var key = document.getElementById("passwordinput").value
- decrypt(key);
- }
-</script>
+ clearKey()
+ }
+
+ {% if site.theme_config.forbid_cache_password %}
+ function readKey(){
+ }
+ function setKey(value){
+ }
+ function clearKey() {
+ }
+ {% else %}
+ function readKey(){
+ var key = md5(location.pathname)
+ return localStorage.getItem(key)
+ }
+ function setKey(value){
+ var key = md5(location.pathname)
+ return localStorage.setItem(key,value)
+ }
+ function clearKey() {
+ var key = md5(location.pathname)
+ localStorage.removeItem(key)
+ }
+ var cachekey = readKey()
+ if(cachekey){
+ decrypt(cachekey)
+ }
+ {% endif %}
+
+
+
+ }()
+
+ </script>
+
\ No newline at end of file