不存储用户密码时,是否有必要对其进行哈希处理?
在你的场景下,额外加密/哈希密码完全没必要
- Firebase Auth本身已经帮你搞定了密码安全的核心环节:
- 客户端到Firebase服务器的传输全程走HTTPS,密码不会以明文形式在网络中暴露;
- Firebase服务器端会自动对密码做加盐哈希处理,绝对不会存储用户的明文密码。
- 自己额外哈希密码反而会带来问题:
- 平白增加不必要的包依赖和代码复杂度,完全是冗余操作;
- 如果你把哈希后的字符串传给Firebase SDK,Firebase会将这个哈希值当作用户的明文密码来处理——这意味着后续用户用原始密码登录会失败,而且Firebase自带的密码重置、邮箱验证等功能也会彻底失效,因为系统认的是你哈希后的那个“密码”,不是用户实际输入的内容。
- 你现在的做法才是正确的:直接调用Firebase Auth的官方方法(比如
signInWithEmailAndPassword)传递用户输入的邮箱和密码即可,不需要做任何额外的密码处理。
内容的提问来源于stack exchange,提问作者What a Shame
相关产品推荐
相关产品推荐

