密码安全存储

关于现在的密码存储的安全性,有很多需要考虑的问题. 直接明文存储或者 双向加密(可以解密)存储都是不可取的
有很多人使用了单向加密的方式-----MD5加密
但是MD5加密后的安全性并不高。同样可以解出来
因此产生了hash+盐的存储方式

MD5加密

  • 特性:单向加密,不可以解密。
  • 特性:同一个密码每次MD5加密后生成的字符串是相同的

基于相同这一个特点,只要枚举所有短密码进行 md5 加密,做成一个索引表,就能轻易的逆推出原始密码

hash+盐

  • 盐是指随机生成的key
  • 很多加密算法都是采用hash+盐的方法
  • 效果:由于盐的随机性,同一个密码每次加密后生成的字符串是不同的

以pbkdf2算法为例:

  • 存储步骤:
    1. 随机生成一段数组作为盐.
    2. 将密码与盐进行n次加密操作,得到一个特定长度的密码 。(n值越大迭代次数越多,越安全)pbkdf2.Key(密码, 盐, 迭代次数, 生成长度, 加密操作)
    3. 再与盐进行拼接,然后再进行一次双向加密得到最终结果,存储在数据库中
  • 登陆解密:
    1. 读取数据库中的密码,进行双向解密。并且截取特定长度之后的字符串得到盐
    2. 将登陆时传入的密码与盐进行n次加密操作与数据库密码的前特定长度位进行比较
    3. 相等则登陆成功,不等则登陆失败
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值