Greasy Fork is available in English.
加密为需要远程链接字典的密文,即远程网页变化密文就不再能被解密
// ==UserScript==// @name NetStrEncryptor// @namespace https://ez118.github.io/// @version 0.2// @description 加密为需要远程链接字典的密文,即远程网页变化密文就不再能被解密// @author ZZY_WISU// @match *://*/*// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwgAADsIBFShKgAAAAxdJREFUWEftlkFrU0EUhWtC0rSCP0FBbCouXHTR/yCITV2IuOhOTFWaWimEtm67NZGmcecvEKQLhTYqKE3dubUL265DEdOAQoh93m868xjfu0kKXdRFDxwY5k5y7tx7Zt4MnOG/xfla5XpmozI1VKtOXnlbvmCnQ1z79fni6M/6PcjYTofgN0vBbm7pcGdq4XBvzE73Bz/MvK9sDH94GTgO1qo/SMQsCIJEtrm1LOxcbX0JIGPmiLEE4fk/31vPgr3AcfFwd03bSAxRcY9tSWJ8pLn11AlHSYzd+sI+ScLK6KDsinDITG31tey0oYlDYoho4o4920HPNWGPbU3YZ7T0UeIJKxcHfVZEQ0r82+jBlioM8cJ8Z2dbE3bEH1YuDkyC4TRxmNlYLWYP6uuaOCS2GOwWNWFIdfoa0VahHRMXc176+CrDkdN8wBwx1kiZN7UEeu7eB27HcEPvyr8pOzvnj23Y3AEjzfrK5f1P+5CxfxewlkrQDnaNMY9/F8hZTpcLc6nnhcbgi9kAyng9U5oJBYZrqzdIzFXHjGXOhk2CtMP5hepwRN090ROp0syyE/ZJQiSBkN+afyixbi2yiSxbGR0IpEuFjpYAlORW/J1HSUxEqpo4lFjHb1UMqdKTu5qwY7oyt68J+8QTmrhjtlW/Y+XiOPUETtoCuUO+nqgF4FRNaBA5hlSk3zFk58zZcHgM2bEVbmSb9dljHUOQun9z7Fw+t5Z8lGslH9/eTuQnFvyLyLSqXKjiCUMZ+wmylsvLJtmWS+2NjMdtuDeS0xO55MPJIMrEg9ym+WMRctXRWsQaUxG/NUfkPXH0qOkGPhRm10oCMJHPFWlHVNzRtEp2rogb8qHr+THqtvuQ0g5N2BG/9Dolhp5XYkhM35pShR2lOpqwTz5gqrAljx4rFwfmU4UtMabWf0fjAzGcJuzIs8/K6TDuV8QhCXJENXFIDLeLUOw9AUnOynQHJoklgTHFH2aBnGUuK//GNHeFzLlzjtujLyvE+76GfLBb4wkR1n5ojqN8O6B/BzjwGwxHz/uW/Qynh4GBv0DJSVGh5ezOAAAAAElFTkSuQmCC// @license GNU GPLv3// @grant GM_xmlhttpRequest// @grant GM_download// @grant GM_registerMenuCommand// @grant GM_unregisterMenuCommand// @grant GM_setValue// @grant GM_getValue// @grant GM_addStyle// @connect *// @require https://greasyfork.org/scripts/456485-pops/code/pops.js?version=1187390// ==/UserScript==function GetAjax(func, url) {GM_xmlhttpRequest({method: "GET", url: url, data:"",headers: {"Content-Type": "application/x-www-form-urlencoded;charset=utf-8"},onload: function(response){func(response.responseText);}, onerror: function(response){alert("[错误]\n请求失败");}});}function jsprompt(text, func, default_text){if(default_text == null || default_text == undefined) { default_text = ""; }pops.prompt({position: "center",closeEnable: true,mask: true,only: true,title: {text: text,position: "center",},content: {placeholder: "Input Here...",text: default_text,row: true /* 多行 */,focus: true /* 输入框自动聚焦 */,},btn: {ok: {callback: (event) => {event.close();func(event)},}}});}function jsalert(title,text){pops.alert({mask: true,only: true,title: {text: title,position: "left",html: false,/* true是不添加p标签,false是添加p标签 */},content: {text: text,html: false,/* true是不添加p标签,false是添加p标签 */},btn: {position: "center",/* center、flex-start、flex-end、space-between、space-around、space-evenly */ok: {/* 是否启用 */enable: true,text: "OK",type: "primary" /* 按钮样式 */,callback: function (event) {event.close();},}}});}var Current_Dict = "";var DefaultDict = "asdf1234ghjk5678lqwe90-=rtyu[]\\;iopz',./xcvb`~!@nmMN#$%^BVCX&*()ZLKJ_+{}HGFD|:\"<SAQW>?ERTY UIOP";function encode(st) {return btoa(encodeURIComponent(st));}function decode(st) {return decodeURIComponent(atob(st));}function hex2int(num) {return parseInt(num, 16);}function int2hex(num) {let ss = num.toString(16);if (ss.length < 2) {ss = "0" + ss;}return ss;}function CreateDict(url, func) {let dic = "";GetAjax(function(r###lt){let codes = r###lt.replace(/\\n/g,"");codes = codes.replace(/[\u4e00-\u9fa5]/g,'');codes = encode(url) + encode(codes) + DefaultDict;for (let i = 0; i < codes.length; i++) {if (dic.indexOf(codes.charAt(i)) >= 0) {continue;} else {dic += codes.charAt(i);}}Current_Dict = dic;func(dic)}, url);}function NetEncode(dic, txt) {let final_txt = "";const orig_txt = encode(txt);for (let i = 0; i < orig_txt.length; i++) {if (dic.indexOf(orig_txt.charAt(i)) >= 0) {final_txt += int2hex(dic.indexOf(orig_txt.charAt(i)));} else {final_txt += "**";}}final_txt = encode(final_txt);return final_txt;}function NetDecode(dic, txt) {let final_txt = "";const orig_txt = decode(txt).replace("**", "");for (let i = 1; i < orig_txt.length; i += 2) {try {final_txt += dic[hex2int(orig_txt.charAt(i - 1) + orig_txt.charAt(i))];} catch {continue;}}final_txt = decode(final_txt);return final_txt;}let menu1 = GM_registerMenuCommand('加密', function () {let branchURL = GM_getValue("branchURL"); /*prompt("URL: ");*/CreateDict(branchURL, function(){jsprompt("待加密文本", function(orig_txt){jsalert("加密结果", NetEncode(Current_Dict, orig_txt.text));});});}, 'E');let menu2 = GM_registerMenuCommand('解密', function () {let branchURL = GM_getValue("branchURL"); /*prompt("URL: ");*/CreateDict(branchURL, function(){jsprompt("待解密文本", function(orig_txt){jsalert("解密结果", NetDecode(Current_Dict, orig_txt.text));});});}, 'D');let menu3 = GM_registerMenuCommand('设定加解密字典链接', function () {jsprompt("设定加解密字典链接", function(orig_txt){GM_setValue("branchURL", orig_txt.text);console.log("字典链接设置成功");}, GM_getValue('branchURL'));}, 'D');(function() {'use strict';if(GM_getValue('branchURL') == null || GM_getValue('branchURL') == "" || GM_getValue('branchURL') == undefined){ GM_setValue('branchURL', "https://www.cnblogs.com/"); }})();