x77论坛永久(x77论坛永久版)
这不算加密,只不过一眼看不出来罢了。其实就是JavaScript字符串转义。
原理很简单,比如字符’w‘
它的charCode是119十六进制表示为0x77
然后利用JavaScript字符串转义前缀\x,表达出编码过的ASCII字符来:
\x+charCode的十六进制表示(两位)
所以字符串'\x77'就是字符串'w'
'\x77'==='w'
这个的返回值是true,二者完全等效!
这是对于ascii代码表示形式,charCode大于255的怎么处理?就要用到\u前缀了
\u+charCode的十六进制表示(
比如汉字'学'的charCode是23398(0x5b66)
书写时只要把0x替换为\u:
\u5b66
这样就可以了。
'\u5b66'==='学'
那么为什么要这么麻烦呢?直接输入字符不就好了吗?要知道,有些字符是不能打印或不能被输入的(比如功能/控制字符“退格”等),如果要在字符串中包含这些字符,只能依靠字符串转义了!
回头看楼主给的代码:
"\x64\x6f\x63\x75\x6d\x65\x6e\x74"
这个是什么?
F12开浏览器开发者工具,切到控制台(或者你有node.js),在控制台输入这一串。
你看到输出什么了吗?
"document"
"\x77\x72\x69\x74\x65\x6c\x6e"
这个输入后,控制台返回
"writeln"
剩下括号内的也是一样的啦。结果是一个指向特定地址的标签。
所以翻译过来就是
window['document']['writeln']('标签')
好,既然楼主说要怎么加密的。我就写了个JS脚本,只要调用这个方法,你就得到“加密”后的字符串信息了:
functionencrypt(str){
varresult='',charCode
for(vari=0,length=str.length;i charCode=str.charCodeAt(i) if(charCode<0x10){ result+='\\x0'+charCode.toString(16) }elseif(charCode<0x100){ result+='\\x'+charCode.toString(16) }elseif(charCode<0x1000){ result+='\\u0'+charCode.toString(16) }else{ result+='\\u'+charCode.toString(16) returnresult 在控制台执行 encrpty('楼主给的那一串') "\x3c\x61\x20\x68\x72\x65\x66\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x63\x63\x79\x6d\x6b\x2e\x63\x6f\x6d\x2f\x22\x20\x74\x61\x72\x67\x65\x74\x3d\x22\x5f\x62\x6c\x61\x6e\x6b\x22\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x46\x46\x30\x30\x30\x30\x3b\x22\x3e\x3c\x62\x3e\x43\x43\u6e90\u7801\u8bba\u575b\x3c\x2f\x62\x3e\x3c\x2f\x61\x3e" 楼主只要把括号中的那一串替换为上面输入的内容就好了。 驱动没装好不能识别,一般是自动装驱动的。你的情况就在电脑上插两个鼠标。然后下一个驱动精灵试试。 更多追问追答 我试过了可还是没用 我从网上买的这个X7鼠标也没有带光盘