请教一个基础的业务逻辑问题:用户密码在 APP, API 接口,数据库之间的加密问题

2021-08-02 18:47:01 +08:00
 123abcdf11345

本人非职业程序员,没有接触过大型项目,所以对这些加密要求不是很懂,望解答

想要实现一个登录逻辑:

App 内用户输入密码 -->Post 到 API 接口-->后端查询数据库验证密码

想请问下中间的两次传输时应该使用哪种级别的加密,以及在数据库里面存储时又该使用哪种加密

App 到 api 接口使用的是 https 协议,是否可以直接明文传输密码或者简单地 based64 编码就传出去?

API 到数据库的读写是本地的,已经启用了 ssl,这一块不考虑加密

在数据库里面存储的时候肯定不能是明文的,我考虑的是 AES-256 加密

现在的问题就是采用哪种方案比较合适

传输过程全部都是安全的( https 和 ssl)加密主要考虑的是客户端被反编译和数据库被攻破的危险 多谢各位

1341 次点击
所在节点    问与答
12 条回复
luckyrayyy
2021-08-02 18:49:17 +08:00
前端到后端既然是 https 明文就行,base64 毫无意义。
luckyrayyy
2021-08-02 18:50:13 +08:00
另外后端可以加个盐
xiangyuecn
2021-08-02 18:57:16 +08:00
看到又有人以为上了 https 就能裸奔,我就放心了🐶

/t/789385
sutra
2021-08-02 19:01:45 +08:00
数据库存储用 bcrypt 吧。你用 AES-256 的话,密钥泄漏了,就能解密出密码了。
chinvo
2021-08-02 19:12:52 +08:00
@xiangyuecn #3 前端加密没卵用, 前端哈希降低密码可靠性.
chinvo
2021-08-02 19:14:18 +08:00
@xiangyuecn #3 日志脱敏应该靠日志审计, 而不是通过牺牲密码可靠性来实现.
heiheidewo
2021-08-02 19:23:08 +08:00
前端计算 hash 传给后端,后端再用另外一个算法去 hash 比对,https 也要防止下中间人攻击啊
cmdOptionKana
2021-08-02 19:34:28 +08:00
@heiheidewo https 本身就是专门用来防中间人攻击的吧?
akira
2021-08-02 21:16:47 +08:00
@cmdOptionKana 不完全能防.

总之,客户端发过来的任何数据,都不能完全相信
hushao
2021-08-02 21:41:29 +08:00
想问下,https 情况下,不关心爬虫的话,前端加密与否有什么区别吗?

当然前端也加密肯定更安全。
Te11UA
2021-08-03 08:28:15 +08:00
上 HTTPS 的确可以裸奔,国外大厂基本如此
Te11UA
2021-08-03 08:30:42 +08:00
@Te11UA #11 但是国内等保测评之类的都是要加密的,所以还是看要求 8

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

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

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

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

© 2021 V2EX