×

js代码加密

请问这种JS代码怎么加密?js加密和解密是什么意思啊 意义何在啊 求大神

admin admin 发表于2022-07-09 06:42:39 浏览97 评论0

抢沙发发表评论

请问这种JS代码怎么加密


这不算加密,只不过一眼看不出来罢了。其实就是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“

剩下括号内的也是一样的啦。结果是一个指向特定地址的 《a》 标签。

所以翻译过来就是

window[’document’][’writeln’](’《a href=“...“》标签《/a》’)

看懂了?

好,既然楼主说要怎么加密的。我就写了个 JS 脚本,只要调用这个方法,你就得到“加密”后的字符串信息了:

function encrypt(str) {
  var result = ’’, charCode

  for(var i = 0, length = str.length; i 《 length; i++) {
    charCode = str.charCodeAt(i)
    if(charCode 《 0x10) {
      result += ’\\x0’ + charCode.toString(16)
    } else if(charCode 《 0x100) {
      result += ’\\x’ + charCode.toString(16)
    } else if(charCode 《 0x1000) {
      result += ’\\u0’ + charCode.toString(16)
    }else {
      result += ’\\u’ + charCode.toString(16)
    }
  }
  return result
}

在控制台执行

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“

楼主只要把括号中的那一串替换为上面输入的内容就好了。


js加密和解密是什么意思啊 意义何在啊 求大神


你好!js是脚本解释性语言可即时查看代码。为保护知识产权,很多很有创意的代码开发者对其做了加密处理,在其中加入混淆码,使用时需要按一定规律进行解密才能为浏览器识别。个人愚见,供参考采纳!

js如何加密源代码,页面样式全部用js写,如何操作


js加密,可以用JShaman实现,

网页源码加密,可以用ShareWAF

你这两个需求,都是能实现的,