密码存储与传输的那些事儿(五)密码传输

       对于密码的存储,需要使用密码哈希来保证用户隐私与密码安全,对于这一点基本上是没什么争议的。但对于像用户登陆这样的场景来说,需要传递用户密码,这时是否需要使用哈希算法?如何保证密码安全?


首选HTTPS

  • HTTPS肯定是最安全的方式,这点是毋庸置疑的。有些人也很极端的说,“如果项目都不肯用HTTPS,这样的公司待下去也没啥意思”,这点我却不敢苟同了。实际上很多小项目或者是私活之类的事儿,你也很难希望人家会有额外的资金给你用于申请证书,然而作为一位有节操的码农,你肯定还是希望保护一下用户的密码。
  • 至于在HTTPS下是否需要给密码哈希,这个就见仁见智了。使用HTTPS,密码传输安全实际上已经保证了,但对于一些监管不是很严格的公司,难保开发维护人员会在后台给你加上啥东西,没准直接就把用户密码打印到日志输出了,不少公司对代码管理其实都不是很严格,也难保程序员离职前给你搞一波什么事儿。另外,我还是觉得0.1并不等于0,做了保护总比明文要强一些,为此个人还是倾向于需要进行前台哈希。
  • 对于APP端的接口开发,个人感觉没啥好说的,直接上HTTPS吧,哪怕你可以自己签发证书,只要在客户端上安装信任自己的根证书即可。

HTTP情况下的密码保护

方法一

  • 服务器端存储密码为Hash(Random-Salt + Hash(Constant-SALT + Pasword))
  • 客户端传输密码为Hash(Constant-SALT + Password)
  • Random-Salt为用户的随机盐࿰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值