您的位置:

python调用js加密(python爬虫破解js加密)

python调用js加密(python爬虫破解js加密)

更新:

本文目录一览:

硬肝手机版拼多多js逆向

无痕模式打开拼多多:;page_id=10002_1645280499485_y9wud75jutbsch_is_search_mall=bsch_show_active_page=lastTabItemID=14refer_page_name=psnl_verificationrefer_page_id=10390_1645280795027_088ye3bk3krefer_page_sn=10390

然后在列表就行下来 看请求出来的列表api

把链接进行xhr断点

然后开始查调用堆栈

找到

继续断点调试

t就是最后自己需要的那个加密参数

t的加密是安俩次调试跳出来的

所以加截断后按一次就开始按f11 

n[r("0xfa", "Vta9")](t, n[r("0x108", "wFxG")](Re))

找到这个  在控制台打印Re()就出来加密参数了

然后 进入Re这个方法 新弄个js就行了

然后用python调用这个js就可以了

python中如何调用js文件中的方法呢

1、打开pycharm开发工具,点击File菜单,选择Settings...,进行第三方模块安装;输入selenium,点击Install Package。

2、接着在python项目的指定文件夹下,鼠标右键新建python文件,输入文件名并点击Python file。

3、打开新建的文件,依次导入selenium、webdriver和time。

4、调用webdriver模块中的Chrome(),使用get()获取对应网址的内容。

5、调用find_element_by_id()获取对应页面元素,然后调用按钮点击事件。

6、修改get()方法中的请求路径,然后保存代码并运行文件,查看运行结果。

怎么用 python 模拟 js 里 JSEncrypt 模块的加密方式

PC登录新浪微博时,在客户端用js预先对用户名、密码都进行了加密,而且在POST之前会GET一组参数,这也将作为POST_DATA的一部分。这样,就不能用通常的那种简单方法来模拟POST登录(比如人人网)。

通过爬虫获取新浪微博数据,模拟登录是必不可少的。

1、在提交POST请求之前,需要GET获取四个参数(servertime,nonce,pubkey和rsakv),不是之前提到的只是获取简单的servertime,nonce,这里主要是由于js对用户名、密码加密方式改变了。

1.1 由于加密方式的改变,我们这里将使用到RSA模块,有关RSA公钥加密算法的介绍可以参考网络中的有关内容。下载并安装rsa模块:

下载:https//pypi.python.org/pypi/rsa/3.1.1

rsa模块文档地址:http//stuvel.eu/files/python-rsa-doc/index.html

根据自己的Python版本选择适合自己的rsa安装包(.egg),在win下安装需要通过命令行使用easy_install.exe(win上安装setuptool从这里下载:setuptools-0.6c11.win32-py2.6.exe 安装文件 )进行安装,例如:easy_install rsa-3.1.1-py2.6.egg,最终命令行下测试import rsa,未报错则安装成功。

1.2 获得以及查看新浪微博登录js文件

查看新浪通行证url (http//login.sina.com.cn/signup/signin.php)的源代码,其中可以找到该js的地址 http//login.sina.com.cn/js/sso/ssologin.js,不过打开后里面的内容是加密过的,可以在网上找个在线解密站点解密,查看最终用户名和密码的加密方式。

1.3 登录

登录第一步,添加自己的用户名(username),请求prelogin_url链接地址:

prelogin_url = 'http//login.sina.com.cn/sso/prelogin.php?entry=ssocallback=sinaSSOController.preloginCallBacksu=%srsakt=modclient=ssologin.js(v1.4.4)' % username

使用get方法得到以下类似内容:

sinaSSOController.preloginCallBack({"retcode":0,"servertime":1362041092,"pcid":"gz-6664c3dea2bfdaa3c94e8734c9ec2c9e6a1f","nonce":"IRYP4N","pubkey":"EB2A38568661887FA180BDDB5CABD5F21C7BFD59C090CB2D245A87AC253062882729293E5506350508E7F9AA3BB77F4333231490F915F6D63C55FE2F08A49B353F444AD3993CACC02DB784ABBB8E42A9B1BBFFFB38BE18D78E87A0E41B9B8F73A928EE0CCEE1F6739884B9777E4FE9E88A1BBE495927AC4A799B3181D6442443","rsakv":"1330428213","exectime":1})

进而从中提取到我们想要的servertime,nonce,pubkey和rsakv。当然,pubkey和rsakv的值我们可以写死在代码中,它们是固定值。

2、之前username 经过BASE64计算:

复制代码 代码如下:

username_ = urllib.quote(username)

username = base64.encodestring(username)[:-1]

password经过三次SHA1加密,且其中加入了 servertime 和 nonce 的值来干扰。即:两次SHA1加密后,结果加上servertime和nonce的值,再SHA1算一次。

在最新的rsa加密方法中,username还是以前一样的处理;

password加密方式和原来有所不同:

2.1 先创建一个rsa公钥,公钥的两个参数新浪微博都给了固定值,不过给的都是16进制的字符串,第一个是登录第一步中的pubkey,第二个是js加密文件中的‘10001'。

这两个值需要先从16进制转换成10进制,不过也可以写死在代码里。这里就把10001直接写死为65537。代码如下:

复制代码 代码如下:

rsaPublickey = int(pubkey, 16)

key = rsa.PublicKey(rsaPublickey, 65537) #创建公钥

message = str(servertime) + '\t' + str(nonce) + '\n' + str(password) #拼接明文js加密文件中得到

passwd = rsa.encrypt(message, key) #加密

passwd = binascii.b2a_hex(passwd) #将加密信息转换为16进制。

2.2 请求通行证url:login_url =‘http//login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.4)'

需要发送的报头信息

复制代码 代码如下:

postPara = {

'entry': 'weibo',

'gateway': '1',

'from': '',

'savestate': '7',

'userticket': '1',

'ssosimplelogin': '1',

'vsnf': '1',

'vsnval': '',

'su': encodedUserName,

'service': 'miniblog',

'servertime': serverTime,

'nonce': nonce,

'pwencode': 'rsa2',

'sp': encodedPassWord,

'encoding': 'UTF-8',

'prelt': '115',

'rsakv' : rsakv,

'url': 'http//weibo.com/ajaxlogin.php?framelogin=1callback=parent.sinaSSOController.feedBackUrlCallBack',

'returntype': 'META'

}

请求的内容中添加了rsakv,将pwencode的值修改为rsa2,其他跟以前一致。

将参数组织好,POST请求。检验是否登录成功,可以参考POST后得到的内容中的一句 location.replace(";callback=parent.sinaSSOController.feedBackUrlCallBackretcode=101reason=%B5%C7%C2%BC%C3%FB%BB%F2%C3%DC%C2%EB%B4%ED%CE%F3");

如果retcode=101则表示登录失败。登录成功后结果与之类似,不过retcode的值是0。

3、登录成功后,在body中的replace信息中的url就是我们下一步要使用的url。然后对上面的url使用GET方法来向服务器发请求,保存这次请求的Cookie信息,就是我们需要的登录Cookie了。

如何在 js 里 RSA 加密然后再python 里解密

所说所有的变量都是对象。 对象在python里,其实是一个指针,指向一个数据结构,数据结构里有属性,有方法。

对象通常就是指变量。从面向对象OO的概念来讲,对象是类的一个实例。在python里很简单,对象就是变量。

class A:

myname="class a"

上面就是一个类。不是对象

a=A()

这里变量a就是一个对象。

它有一个属性(类属性),myname,你可以显示出来

print a.myname

所以,你看到一个变量后面跟点一个小数点。那么小数点后面

python如何实现 JS中的 unescape函数

可用base64 模块

import base64

a = "Hello world!"

b = base64.encodestring(a) #加密

c = base64.decodestring(b) #解密

print(a)

print(b)

print a == c

python调用js加密(python爬虫破解js加密)

本文目录一览: 1、硬肝手机版拼多多js逆向 2、python中如何调用js文件中的方法呢 3、怎么用 python 模拟 js 里 JSEncrypt 模块的加密方式 4、如何在 js 里 RSA

2023-12-08
爬虫js破解cookie,爬虫破解js加密的流程

本文目录一览: 1、简单NodeJS爬虫和使用cookie进行模拟登录 2、爬虫 如何抓包获取cookie 3、用Node 做爬虫时有带 cookie 的请求怎么破 简单NodeJS爬虫和使用cook

2023-12-08
关于python爬js加密数据的信息

2022-11-08
爬虫pythonjson(爬虫python和java)

本文目录一览: 1、Python爬虫笔记(二)requests模块get,post,代理 2、Python爬虫(七)数据处理方法之JSON 3、Python与爬虫有什么关系? Python爬虫笔记(二

2023-12-08
python之js反爬,js反爬虫

2022-11-24
js对上传文件加密(js地址传参数加密和解密)

本文目录一览: 1、关于js 函数加密 2、请问 上传文件的时候想在前端先进行加密? 3、介绍一点js加密的方法 4、求JS文件的加密与解密 关于js 函数加密 pre t="code" l="js"

2023-12-08
js实现文件加密,js文件加密工具java

2022-11-24
python爬虫二,python爬虫二级页面

2022-11-18
python爬虫解析js,python爬虫解析工具

本文目录一览: 1、如何用python爬虫直接获取被js修饰过的网页Elements? 2、如何用Python爬虫抓取JS动态筛选内容 3、Python爬虫在处理由Javascript动态生成的页面时

2023-12-08
python爬虫抓包抓不了数据,Python抓数据

2022-11-17
js代码加密怎么解啊(JS加密解密)

本文目录一览: 1、如何破解js 加密 2、如何破解js脚本加密,我要看js里的代码 3、求JS文件的加密与解密 4、如何破解JS脚本加密 5、!!!js文件被加密了 ,怎样解密 6、JS怎么解密?

2023-12-08
关于python爬虫实现post的信息

2022-11-14
python爬虫之基础内容,python爬虫笔记

2022-11-21
python爬虫之字体反爬虫(用python写爬虫)

2022-11-14
js爬虫嵌入网页(js爬取网页)

本文目录一览: 1、js爬虫如何实现网页数据抓取 2、js的网页爬虫爬不到吗 3、前端js爬虫? 4、怎么用python爬虫爬取可以加载更多的网页 5、如何爬取js加载后的页面显示内容 6、如果网页内

2023-12-08
python破解淘宝登录(淘宝 python)

2022-11-13
php与js加密解密(php加密破解)

本文目录一览: 1、js中常见的数据加密与解密的方法 2、php加密数字 js解密 3、PHP常用加密解密方法 4、前端JS AES加密 后端PHP AES加解密 js中常见的数据加密与解密的方法 加

2023-12-08
爬取css和js(css选择器 爬虫)

本文目录一览: 1、百度蜘蛛爬行CSS和JS很多,这会不会浪费了蜘蛛的资源 2、怎么获取某个网页上的js和css 3、为什么百度蜘蛛老去抓css和js文件 4、python爬取网页时会不会加载css,

2023-12-08
python解决js加密问题(js加密了怎么办)

2022-11-15
js加解密java加解密(js加密字符串java解密)

本文目录一览: 1、jsencrypt加密java解密 2、如何前台JS进行加密,后台java进行解密? 3、URL请求对参数前端JS加密,后台JAVA解密 jsencrypt加密java解密 很不幸

2023-12-08