您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
STEAM评测加密解密助手
当前为
// ==UserScript== // @name Steam_Commit_Crypto // @namespace https://blog.chrxw.com // @version 0.1 // @description STEAM评测加密解密助手 // @author Chr_ // @include /https://(store\.steampowered|steamcommunity)\.com?/*. // @require https://gf.qytechs.cn/scripts/426509-bear-encode-decode/code/Bear_Encode_Decode.js // @require https://cdn.jsdelivr.net/npm/[email protected]/base64.min.js // @require https://cdn.bootcdn.net/ajax/libs/crypto-js/4.0.0/core.min.js // @connect steamcommunity.com // @license AGPL-3.0 // @icon https://blog.chrxw.com/favicon.ico // ==/UserScript== let G_ver = '2.3'; // 版本号 let G_CMode = 'syyz'; // 加密解密模式 let G_str = ''; const CryptoMode = { // 加解密模式 // 'auto': ['自动猜测(非万能)', null, null], 'syyz': ['兽音译者', bearEncode, bearDecode], // 'msdm': ['摩斯电码', null, null], // 'xfy': ['佛曰', null, null], // 'rcnb': ['RCNB', null, null], // 'bs64': ['Base64', null, null], }; const ValidElemtents = [ ['class', 'content'], ['class', 'input_box'] ]; (() => { 'use strict'; // if (self != top) {// 位于iframe中,不执行脚本 // return; // } addPanel(); window.addEventListener('mouseup', handleMouseUpEvent); window.addEventListener('mousedown', handleMouseDownEvent); })(); // 添加GUI function addPanel() { function genButton(text, foo, id) { let b = document.createElement('button'); b.textContent = text; b.style.cssText = 'vertical-align: inherit;padding: 0 5px;' b.addEventListener('click', foo); if (id) { b.id = id; } return b; } function genDiv(id) { let d = document.createElement('div'); // d.style.cssText = 'vertical-align:middle;'; if (id) { d.id = id }; return d; } function genPanel(name, visiable) { let d = genDiv(name); d.style.cssText = 'background: rgba(58, 58, 58, 0.9);position: fixed;top: 50%;'; d.style.cssText += 'text-align: center;transform: translate(0px, -50%);z-index: 1000;'; d.style.cssText += 'border: 1px solid rgb(83, 83, 83);padding: 5px;'; d.style.cssText += 'transition:right 0.8s;right:-300px;width:280px;font-size:14px;' if (visiable) { d.style.right = '0'; } return d; } function genPanel2(name, visiable) { let d = genDiv(name); d.style.cssText = 'background: rgba(58, 58, 58, 0.9);position: fixed;'; d.style.cssText += 'text-align: center;transform: translate(0px, -50%);z-index: 2000;'; d.style.cssText += 'border: 1px solid rgb(83, 83, 83);padding: 2px;visibility: none'; d.style.cssText += 'transition:visiable 0.8s;font-size:14px;' if (visiable) { d.style.visibility = 'visible'; } return d; } function genLabel(text, bind) { let l = document.createElement('label'); l.textContent = text; l.style.verticalAlign = 'inherit'; if (bind) { l.setAttribute('for', bind); } return l; } function genA(text, url) { let a = document.createElement('a'); a.textContent = text; a.href = url; return a; } function genSelect(id, choose, choice) { let s = document.createElement('select'); s.id = id; s.style.cssText = 'color:#000;background:#fff;border:none;border-radius:0;vertical-align:inherit;width: 70%;'; for (k in choose) { s.options.add(new Option(choose[k][0], k)); } s.value = choice; return s; } function genSpace() { let s = document.createElement('span'); s.textContent = ' '; return s; } function genBr() { return document.createElement('br'); } function genHr() { let h = document.createElement('hr'); h.style.margin = '2px 0'; return h; } function genTextArea(id, tips) { let t = document.createElement('textarea'); if (id) { t.id = id; } if (tips) { t.placeholder = tips; } t.style.cssText = 'width: 98%;height: 100px;resize: vertical;font-size: 12px;'; t.style.cssText += 'max-height:500px;background-color: #fff;padding: 2px;'; return t; } let panelFunc = genPanel('sccCtrl', false); document.body.appendChild(panelFunc); let divTitle = genDiv(); divTitle.style.marginBottom = '5px' let lblTitle = genLabel(`SCC - V ${G_ver} - By `, null); let lblUrl = genA('Chr_', 'https://steamcommunity.com/id/Chr_'); let lblFeed = genA('[反馈]', 'https://blog.chrxw.com/scripts.html'); let btnClose = genButton('关闭', () => { switchPanel(false); }, 'btnClose'); btnClose.style.float = 'left'; divTitle.appendChild(lblTitle); divTitle.appendChild(lblUrl); divTitle.appendChild(genSpace()); divTitle.appendChild(lblFeed); divTitle.appendChild(btnClose); let txtInput = genTextArea('txtInput', '在这里输入密文'); let divMode = genDiv(); let lblMode = genLabel('模式:', 'lblMode'); let selMode = genSelect('selMode', CryptoMode, G_CMode); divMode.style.marginBottom = '5px' divMode.appendChild(lblMode); divMode.appendChild(selMode); let divAction = genDiv() let btnEncode = genButton('加密↑', encode, 'btnEncode'); let btnDecode = genButton('解密↓', decode, 'btnDecode'); let btnExchange = genButton('交换↕', exchange, 'btnExchange'); // let btnExtract = genButton('提取链接🌐', null, 'btnExchange'); divAction.style.marginBottom = '5px' divAction.appendChild(btnEncode); divAction.appendChild(genSpace()); divAction.appendChild(btnDecode); divAction.appendChild(genSpace()); divAction.appendChild(btnExchange); // divAction.appendChild(genSpace()); // divAction.appendChild(btnExtract); let txtOutput = genTextArea('txtOutput', '在这里输入明文'); panelFunc.appendChild(divTitle); panelFunc.appendChild(txtInput); panelFunc.appendChild(divMode); panelFunc.appendChild(divAction); panelFunc.appendChild(txtOutput); let panelTips = genPanel2('sccTips', false); document.body.appendChild(panelTips); let btnSyyzD = genButton('兽音解密', () => { toolbarCallback('syyz_d'); }, 'btnSyyzD'); let btnSyyzE = genButton('兽音加密', () => { toolbarCallback('syyz_e'); }, 'btnSyyzE'); panelTips.appendChild(btnSyyzD); panelTips.appendChild(btnSyyzE); } // 加密 function encode() { let m = document.getElementById('selMode'); let i = document.getElementById('txtInput'); let o = document.getElementById('txtOutput'); let obj = CryptoMode[m.value][1]; i.value = obj(o.value); } // 解密 function decode() { let m = document.getElementById('selMode'); let i = document.getElementById('txtInput'); let o = document.getElementById('txtOutput'); let obj = CryptoMode[m.value][2]; o.value = obj(i.value); } // 交换明文密文 function exchange() { let i = document.getElementById('txtInput'); let o = document.getElementById('txtOutput'); [i.value, o.value] = [o.value, i.value]; } // 选中文本显示工具栏 function showDialog(event) { let x = event.clientX; let y = event.clientY; console.log(x, y) console.log(window.getSelection().toString()); } // 隐藏工具栏 function hideDialog(event) { let x = event.clientX; let y = event.clientY; console.log(x, y) console.log(window.getSelection().toString()); } // 鼠标松开事件(显示工具栏) function handleMouseUpEvent(event) { setTimeout(() => { let ele = event.target; let str = window.getSelection().toString(); let bar = document.getElementById('sccTips'); if (str == "") { // 未选择文本,终止 return; } G_str = str; // 判断选中的文字是否处于特定的元素中 for (let [key, value] of ValidElemtents) { let obj = ele.getAttribute(key); if (obj && obj.toString().indexOf(value) != -1) { console.log(G_str); console.log(key, value); let x, y; x = event.clientX + 15; y = event.clientY - 15; bar.style.left = `${x}px`; bar.style.top = `${y}px`; bar.style.visibility = 'visible'; break; } } }, 500); } // 鼠标按下事件(隐藏工具栏) function handleMouseDownEvent(event) { let ele = event.target; if (ele.parentElement.id != 'sccTips') { let bar = document.getElementById('sccTips'); if (bar.style.visibility != 'hidden') { bar.style.visibility = 'hidden'; } } } // 工具栏回调 function toolbarCallback(mode) { let m = document.getElementById('selMode'); let i = document.getElementById('txtInput'); let o = document.getElementById('txtOutput'); let b = document.getElementById('sccTips'); b.style.visibility = 'hidden'; switchPanel(true); i.value = G_str; o.value = G_str; m.value = mode.substr(0, mode.length - 2); switch (mode.substr(mode.length - 1)) { case 'd': decode(); break; case 'e': encode(); break; default: break; } } // 显示/隐藏面板 function switchPanel(mode) { let p = document.getElementById('sccCtrl'); if (mode === null) { if (p.style.right == '-300px') { p.style.right = '0'; } else { p.style.right = '-300px'; } } else { p.style.right = mode ? '0' : '-300px'; } }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址