// ==UserScript==
// @name 犇犇非对称加密插件
// @namespace http://tampermonkey.net/
// @version 0.2
// @description 使用RSA算法对犇犇进行加密
// @license GPL-3.0
// @author LiuTianyou
// @match https://www.luogu.com.cn/
// @grant unsafeWindow
// @require https://cdn.jsdelivr.net/npm/jsencrypt@3.3.1/bin/jsencrypt.min.js
// @downloadURL https://update.greasyfork.icu/scripts/459361/%E7%8A%87%E7%8A%87%E9%9D%9E%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86%E6%8F%92%E4%BB%B6.user.js
// @updateURL https://update.greasyfork.icu/scripts/459361/%E7%8A%87%E7%8A%87%E9%9D%9E%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86%E6%8F%92%E4%BB%B6.meta.js
// ==/UserScript==
window.jsEncrypt = new JSEncrypt();
window.encrypt = function(){
var data = document.getElementById('feed-content').value;
var publickey = document.getElementById('public-key').value;
window.jsEncrypt.setPublicKey(publickey);
document.getElementById('feed-content').value = window.jsEncrypt.encrypt(data);
};
window.decrypt = function(){
var data = window.prompt("请输入数据", "");
var privatekey = document.getElementById('private-key').value;
if(privatekey == "" || privatekey == null) return;
window.jsEncrypt.setPrivateKey(privatekey);
alert(window.jsEncrypt.decrypt(data));
};
window.save = function(){
window.localStorage.setItem("public_key", document.getElementById('public-key').value);
window.localStorage.setItem("private_key", document.getElementById('private-key').value);
alert("保存成功!");
}
setTimeout(function(){
var benben = document.querySelector('.lg-index-benben');
var public = document.createElement('div');
public.className = "am-form-group am-form";
var storaged_public, storaged_private;
if(window.localStorage.getItem("public_key") == null) storaged_public = "";
else storaged_public = window.localStorage.getItem("public_key");
if(window.localStorage.getItem("private_key") == null) storaged_private = "";
else storaged_private = window.localStorage.getItem("private_key");
public.innerHTML = "";
benben.children[2].appendChild(public);
var private = document.createElement('div');
private.className = "am-form-group am-form";
private.innerHTML = "";
benben.children[2].appendChild(private);
var submit = document.createElement('button');
submit.className = "am-btn am-btn-danger am-btn-sm";
submit.innerText = "加密犇犇!";
submit.addEventListener("click", window.encrypt);
benben.children[2].appendChild(submit);
var submit2 = document.createElement('button');
submit2.className = "am-btn am-btn-danger am-btn-sm";
submit2.innerText = "解密犇犇!";
submit2.addEventListener("click", window.decrypt);
benben.children[2].appendChild(submit2);
var submit3 = document.createElement('button');
submit3.className = "am-btn am-btn-danger am-btn-sm";
submit3.innerText = "保存公私钥!";
submit3.addEventListener("click", window.save);
benben.children[2].appendChild(submit3);
}, 1000);