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

2016-11-03 16:49:47 +08:00
 BBrother

js 的代码如下

var g = new JSEncrypt();
g.setPublicKey(f.key);
c = g.encrypt(f.hash + c);

我知道 f.key 和 f.hash 的值, c 是密码的原文,怎么用 python 实现这个过程?
f 的格式如下

{'hash': '17aa7f5df0ae61b8', 'key': '-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCdScM09sZJqFPX7bvmB2y6i08J\nbHsa0v4THafPbJN9NoaZ9Djz1LmeLkVlmWx1DwgHVW+K7LVWT5FV3johacVRuV98\n37+RNntEK6SE82MPcl7fA++dmW2cLlAjsIIkrX+aIvvSGCuUfcWpWFy3YVDqhuHr\nNDjdNcaefJIQHMW+sQIDAQAB\n-----END PUBLIC KEY-----\n'}
5897 次点击
所在节点    JavaScript
11 条回复
bdbai
2016-11-03 19:41:57 +08:00
这个是 GPG 吧
BBrother
2016-11-03 20:25:31 +08:00
@bdbai 这个是 B 站登录加密密码的一段 js 。
bdbai
2016-11-03 21:24:49 +08:00
@BBrother 看上去像 GPG
icedx
2016-11-03 21:34:13 +08:00
RSA 加密吧
ibigbug
2016-11-03 21:42:07 +08:00
去代码里面搜加密方法。。
Arthur2e5
2016-11-03 22:04:27 +08:00
https://github.com/travist/jsencrypt

直接调 openssl 啊……
SlipStupig
2016-11-04 03:02:46 +08:00
pycrypt
SlipStupig
2016-11-04 03:03:17 +08:00
或者调用 pyv8 去跑也行......装环境有点恶心
BBrother
2016-11-04 09:04:54 +08:00
@SlipStupig 这个在算法细节上和 JSEncrypt 一致吗?
eoo
2016-11-04 13:41:37 +08:00
用 nodejs 做个接口调用
SlipStupig
2016-11-04 14:12:25 +08:00
@BBrother 等于把程序运行了一次,当然一致

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/317789

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX