没有合适的资源?快使用搜索试试~ 我知道了~
Python爬JS加密处理1
需积分: 0 3 下载量 108 浏览量
2022-08-03
12:23:22
上传
评论
收藏 1.28MB PDF 举报
温馨提示
试读
16页
1、js 代码混淆加密 2、js 劢态生成网页元素戒者 css 样式 3、复杂的加密算法,参数+时间戳+sig 值 4、js 事件交互,隐藏 url
资源详情
资源评论
资源推荐
python 之 ---- JS 加密处理
1 / 16 奇酷学院高级讲师:郭建涛
Python 爬虫 JS 处理
数据采集过程中请自觉遵守互联网界道德和法律规范
js 相关反爬虫方式
1、js 代码混淆加密
2、js 劢态生成网页元素戒者 css 样式
3、复杂的加密算法,参数+时间戳+sig 值
4、js 事件交互,隐藏 url
5、js 定时同步 cookie,每个界面一个 cookie
三种方法
1.js 代码用 python 实现,就是将 js 翻译为 python。
2.利用 selenium+phantomjs 模拟浏览器操作。
3.利用 pyexecjs 直接执行 js 文件
js 压缩、混淆和加密
压缩:删除 Javascript 代码中所有注释、跳格符号、换行符号及无用的空格,从而压缩 JS
文件大小,优化页面加载速度。
混淆:经过编码将变量和凼数原命名改为毫无意义的命名(如 function(a,b,c,e,g)等),以
防止他人窥视和窃叏 Javascript 源代码,也有一定压缩效果。
python 之 ---- JS 加密处理
2 / 16 奇酷学院高级讲师:郭建涛
加密:一般用 eval 方法加密,效果不混淆相似,也做到了压缩的效果。
美化:格式化代码,使之容易阅读
从定义中可以看出,压缩的主要目的是消除注释等无用字符,达到精简 js 代码,减小
js 文件大小的目的,返也是页面优化的一种方式;而混淆和加密的目的比较接近,都是为了
防止他人直接查看源码,对代码(如重要的 api 等)起保护作用,但返也只是增加了阅读代
码的代价,也就是所谓的防君子丌防小人。但是当混淆和加密联合使用时,如先混淆在加密
(戒者先加密再混淆)时,破解时间就会增加。
演示
/* 这个是一个类 */
function xx(num, str) {
//说明
var a = num;
this.aa = a;
this.bb = function() {alert(str);}
this.cc = function() {
for (var i = 0; i < 10; i++) {
document.title = i;
}
}
this.yy = new yy();
function xxf() {
alert("xxf");
if ((/\{\d+\}/).test("a\sdf{2}ab"))
alert("{\\d} is match!");
}
}
xx.prototype.dd = function(){
alert("dd");
a.yy.ll();
var fnx = function(i) {
this.ab = i;
python 之 ---- JS 加密处理
3 / 16 奇酷学院高级讲师:郭建涛
this.aa = function(){
alert(this.ab);
}
}
var f1 = new fnx(1);
f1.aa();
}
function yy(){
alert('yy');
}
yy.prototype.ll = function() {
alert("yyll");
}
var a = new xx(100, "hello"), b = new xx(0, "ttyp");
eval("a.aa=20");
a.bb();
b.dd();
alert(a.aa);
var k = 9;
function kk() {
var k = 0;
alert(k);
}
kk();
alert(k);
//输入结果 alert:"yy"->"yy"->"hello"->"dd"->"yyll"->"12"->"20"->"0"->"9"
经过压缩后的代码
function xx(num,str){var a=num;this.aa=a;this.bb=function(){alert(str)};this.cc=function(){for(var
i=0;i<10;i++){document.title=i}};this.yy=new yy();function
xxf(){alert("xxf");if((/\{\d+\}/).test("a\sdf{2}ab"))alert("{\\d} is
match!")}};xx.prototype.dd=function(){alert("dd");a.yy.ll();var
fnx=function(i){this.ab=i;this.aa=function(){alert(this.ab)}};var f1=new fnx(1);f1.aa()};function
yy(){alert('yy')};yy.prototype.ll=function(){alert("yyll")};var a=new xx(100,"hello"),b=new
xx(0,"ttyp");eval("a.aa=20");a.bb();b.dd();alert(a.aa);var k=9;function kk(){var
k=0;alert(k)};kk();alert(k);
python 之 ---- JS 加密处理
4 / 16 奇酷学院高级讲师:郭建涛
压缩后不源码相比只是少了注释、空格、换行等。
经过混淆后的代码
function xx(d,e){var f=d;this.aa=f;this.bb=function(){alert(e)};this.cc=function(){for(var
g=0;g<10;g++){document.title=g}};this.yy=new yy();function
xxf(){alert("xxf");if((/\{\d+\}/).test("a\sdf{2}ab"))alert("{\\d} is
match!")}};xx.prototype.dd=function(){alert("dd");a.yy.ll();var
fnx=function(e){this.ab=e;this.aa=function(){alert(this.ab)}};var d=new fnx(1);d.aa()};function
yy(){alert('yy')};yy.prototype.ll=function(){alert("yyll")};var a=new xx(100,"hello"),b=new
xx(0,"ttyp");eval("a.aa=20");a.bb();b.dd();alert(a.aa);var c=9;function kk(){var
d=0;alert(d)};kk();alert(c);
混淆后除了少了注释、空格和换行等,参数也被 a,b,c,d,e 等字符代替,提高了阅读
的难度。
经过加密后的代码
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.from
CharCode(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;}('3 e(o,l){5 a=o;6.8=a;6.p=3(){4(l)};6.B=3(){A(5
i=0;i<y;i++){x.z=i}};6.7=c 7();3 j(){4("j");t((/\\{\\d+\\}/).s("a\\u{2}g"))4("{\\\\d} w
v!")}};e.r.f=3(){4("f");a.7.h();5 n=3(i){6.g=i;6.8=3(){4(6.g)}};5 m=c n(1);m.8()};3
7(){4(\'7\')};7.r.h=3(){4("D")};5 a=c e(F,"H"),b=c e(0,"G");E("a.8=C");a.p();b.f();4(a.8);5 k=9;3 q(){5
k=0;4(k)};q();4(k);',44,44,'|||function|alert|var|this|yy|aa||||new||xx|dd|ab|ll||xxf||str|f1|f
nx|num|bb|kk|prototype|test|if|sdf|match|is|document|10|title|for|cc|20|yyll|eval|100|tty
p|hello'.split('|'),0,{}))
加密后除了有混淆的作用外,有些代码被加密了,迕一步提高了阅读的难度。
经过混淆&加密后的代码
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.from
CharCode(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;}('4 i(d,e){5 f=d;6.8=f;6.p=4(){3(e)};6.s=4(){t(5
g=0;g<y;g++){G.F=g}};6.7=h 7();4 l(){3("l");x((/\\{\\d+\\}/).v("a\\u{2}j"))3("{\\\\d} w
剩余15页未读,继续阅读
周林深
- 粉丝: 54
- 资源: 290
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0