在分析前端js中,Eval加密解密、js混淆概念及其破解

前端虽然开源, 但是由于前端代码量很多,也有一些特殊的保护代码的方法,其中Eval、js混淆是常用的方式,但是在大的互联网产品上用得很少,因为前端加密(RSA、AES、MD5等)是为了保证数据传输中的安全性,而非要让人难以模仿数据传输请求。

而前端中的js混淆、eval对于专业的人来说形同虚设,所以也没必要做混淆和eval,并且对于代码维护是及其不利的,所以在接触的百度、腾讯、京东的一些产品上没遇到过上面两种问题。

js中的eval()方法就是一个js语言的执行器,它能把其中的参数按照JavaScript语法进行解析并执行,简单来说就是把原本的js代码变成了eval的参数,变成参数后代码就成了字符串,其中的一些字符就会被按照特定格式“编码”,像下面:

var showmsg="粘贴要加密/解密的javascript代码到这里";if(1==1){  alert(showmsg);}

eval加密:

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('5 4="粘贴要加密/解密的3代码到这里";2(0==0){  1(4);}',62,6,'1|alert|if|javascript|showmsg|var'.split('|'),0,{}))

变成了一串不知道什么意思的字符串,但是其中的一些关键词还是可以看清楚的。

应对这种js代码的方法也很简单,有很多在线提供eval解密的功能,可以直接复制代码解密

image

或者直接在浏览器调试模式下使用开发者工具的控制台,复制执行包含eval()的代码

image

对于js混淆很好理解就是,把其中的变量、方法位置顺序打乱,但是又用一些无关的变量或者方法来保证执行顺序,这种js混淆的也很好处理,复制完整的混淆代码去js混淆还原网站还原。

image

ID:Python之战

**|作|者|公(zhong)号:python之战 **

专注Python,专注于网络爬虫、RPA的学习-践行-总结

喜欢研究和分享技术瓶颈,欢迎关注

独学而无友,则孤陋而寡闻!


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容