设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 运营中心 > 建站资源 > 策划 > 正文

奇思妙想之用JS给图片加口令(2)

发布时间:2019-04-08 13:37 所属栏目:20 来源:w2sfoot
导读:在进行代码混淆时,一定要使用字符串加密功能,因为这是我们进行混淆的关键需求,只要选了这一项,密码才会隐藏起来。 有的技术同学很可能有反对意见,认为JS混淆加密后是可以还原的。 关于这个想法,要分情况。 如

在进行代码混淆时,一定要使用“字符串加密”功能,因为这是我们进行混淆的关键需求,只要选了这一项,密码才会隐藏起来。

有的技术同学很可能有反对意见,认为JS混淆加密后是可以还原的。

关于这个想法,要分情况。

如果是用unescape、escape、eval进行的初级加密,那是可以逆的,可以解密的。

而如果是真正的高强度混淆加密,是不可解的。

这个需要从理原上深度的解释,比如JShaman这种混淆加密,使用的并非是简单的可逆加密。

而是先对JS源代码进行词法分析、语法分析,分离出变量、常量、函数、关键字等,生成语法树;然后进行变量变形、常量阵列化、加密,插入僵尸代码、加入反调试、再平展控制流等等,最后再重新生成代码。

是对代码进行了重建的,不可逆的。

jpg2html_10_1.jpg

还是不太相信吗?

好的,我们来实际检测一下,逆一次。

先进行代码混淆:

再对对结果代码进行反混淆。常用的是esprima、escodegen。

这里在nodejs的环境下使用:

首先安装这两个组件:

  1. npm install esprima 
  2. npm install escodegen 

然后准备以下代码:

然后执行,这时会输出反混淆结果:

jpg2html_12.jpg

可见,反混淆后得到的代码,跟原始代码差别非常大,多了很多很多复杂的逻辑关系,字符也是混乱不堪,代码几乎是无法阅读,更别说理解出原本代码含义了。

从这解密后的代码中,当然也没办法找到原来的密码“123”。

jpg2html_13.jpg

混淆与反混淆的问题暂告一段落,如果有人还反驳:一点点的读,只要肯花时间,三天、一个月,总能慢慢读懂。那就属于钻牛角了。

我们回到正文。因为图片的base64编码字符串比较长、内容量大,混淆加密时,建议只对关键代码进行混淆,否则生成的代码可能会太过庞大。

jpg2html_07.jpg

经过这一系列操作后,一张被口令保护的图片就生成了。

掌握了一个很绚酷的技能吧!

同时,这个技能在很多场合,是有实际用途的,相信你会遇的到。

【编辑推荐】

  1. 如何防御Node.js中的不安全跳转
  2. 企业安全体系建设之路之Web安全篇
  3. “黑客”必用兵器之“密码口令破解篇”
  4. 3大Web安全漏洞防御详解:XSS、CSRF、以及SQL注入解决方案
  5. 目前最好的口令建议(注意:这不是NIST指南)
【责任编辑:赵宁宁 TEL:(010)68476606】
点赞 0

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读