那种 vue 开发的页面,怎么查看实际的代码处理逻辑,比如登录密码是如何加密的

2021-01-05 09:37:30 +08:00
 zxCoder
2467 次点击
所在节点    问与答
24 条回复
yaphets666
2021-01-05 09:42:16 +08:00
那能让你看到?
niubee1
2021-01-05 09:43:31 +08:00
登录密码加密?不是 https 加密通讯过程么,内部还是明文的,到了服务端存储的时候才 hash
SmallTeddy
2021-01-05 09:44:03 +08:00
登录密码加密一般都是用的库,根据不同的加密算法选择不同的库,企业级项目一般是规定一个密匙,通过密匙进行加密和解密的,这个过程和什么框架没太大关系,只通过 js 就可以实现
zxCoder
2021-01-05 09:46:17 +08:00
@yaphets666
@niubee1

我看控制台的请求里密码就已经加密了
zxCoder
2021-01-05 09:46:42 +08:00
@SmallTeddy 我的意思是怎么看到是怎么加密的呢?用什么算法,密钥之类的。
yamedie
2021-01-05 09:47:35 +08:00
控制台 -> network -> 找请求的 Initiator, chrome 开启 overrides, js 代码 prettier 以后打断点+log 调试
azcvcza
2021-01-05 09:48:18 +08:00
找机会在登录前打个断点不就知道了,就算 webpack 打包过,他也还是 js 代码
kop1989
2021-01-05 09:50:10 +08:00
在浏览器按 F12,然后找到 loginBtn 对应的 onclick 事件,然后单步调试即可。
yaphets666
2021-01-05 09:51:09 +08:00
@zxCoder 你想啥呢?代码你看不到的. 你看到用什么算法 用什么秘钥 那不就攻破了? 代码都是混淆压缩过的 都在 source 里 你看得懂你就看吧
yamedie
2021-01-05 09:52:01 +08:00
从 network 或 elements 的 event listeners 两条路径出发都可以(8 楼提到的)

这有一篇很水的分析思路
http://0525.eu/202002/1105/
SmallTeddy
2021-01-05 09:53:11 +08:00
@zxCoder 这个 vue 项目一般是去登录的 login 文件里,可以先找 password,看登录时前端代码对 password 用的是什么函数处理,在看这个函数是 import 的什么库或者什么文件,在项目文件里找到这个文件,一般密匙也都会在这个文件里规定,加密、解密函数也一样
yamedie
2021-01-05 09:57:03 +08:00
@SmallTeddy 用户密码一般用摘要算法(md5, sha1 之类)算出摘要传给后端(加盐)存储 /校验, 是没有密匙参与加密的, 因为后端根本不需要解密出密码明文
niubee1
2021-01-05 09:58:41 +08:00
@zxCoder 还真是多此一举啊,你先观察看看确定是加密还是 hash,如果根据密码长度变长,就是加密,如果定长就是 hash,剩下的端点跟踪就好了,楼上很多人提到了就不复述
SmallTeddy
2021-01-05 10:01:43 +08:00
@yamedie 哈哈,我这边做过的登录加密是设定 32 位密匙,然后经过一次加密生成一个字符串,在通过 https 二级加密传的,后端拿到后先解密,之后再用另外一种算法加密存到数据库
zxCoder
2021-01-05 10:02:15 +08:00
@yaphets666
@niubee1
@SmallTeddy
@yamedie
@azcvcza
@kop1989
@yaphets666

发送的密码长得类似这样的 gb8_fZ94uOoUMt8QG14u7w*=

source 里的代码太难读了。。。。混淆后函数命名简直魔鬼。。。
yhxx
2021-01-05 10:03:53 +08:00
一直觉得这种加密没什么意义
SmallTeddy
2021-01-05 10:12:15 +08:00
我用 AES 加密 设置密匙和偏移量 加密之后是这样的 password: "uSSFOvkpGyYvEmokX7EFfvEMmTDL3mlYAzu+Joq9fGk="

我看你这个应该也是有密匙的,而且密匙包括了大小写字谜,数字和特殊字符
christin
2021-01-05 10:13:25 +08:00
用算法 加盐 你怎么猜
SmallTeddy
2021-01-05 10:14:14 +08:00
@zxCoder 说错了 密匙不确定 不过你这个密匙长度应该是 16 位的
SmallTeddy
2021-01-05 10:15:16 +08:00
@christin 我用的 32 位生成的是 44 位,那么 16 位密匙应该就是生成 22 位

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

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

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

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

© 2021 V2EX