qq_27614339 2018-12-28 09:55 采纳率: 0%
浏览 681
已结题

客户端服务器用户密码加盐加密,遇到的问题

我是在一篇论文中看到的一种给密码加盐加密的方式,之前也有了解过一些加盐加密,下面是这篇论文中的加盐加密方式:
假定:注册阶段已完成,此时,客户端已拥有账号与密码;
服务器端已建立起用户密码库, 存储模式为( userid,
password_hash ) , 盐值单独存放, 防止拕库, 存储模式为
(userid,salt_hash,cost),其中cost 字段为慢哈希代价,用来挃定客户
端的慢哈希速度,cost 值越大,web 端运行越慢。
则登彔阶段的协议描述为:
(1)客户端以userid 収起登彔请求。
(2)服务器端响应,生成一随机盐值salt=random(),h(salt)存
储,选定cost 值,将cost、salt 収送。
(3)客户端计算r= PBKDF2( PRE, Password, Salt, cost, LEN),
収送。PRE 为随机函数,LEN 为辒出长度。
(4)服务端收到r,与自己计算的PBKDF2 (password, salt, cost)比较,若相等,则存储于password_hash 字段,通过认证。若不相等则丢弃。

想问第四步中服务器自己计算的password是从哪得到的,如果是上次存储的password_hash,那在password正确的情况下客户端计算出的r和服务器计算出的r应该不一样,因为每次登陆都会随机一个salt值,请各位大神帮忙看一下,这个方案具体是怎么考虑的,谢谢!

  • 写回答

1条回答 默认 最新

  • weixin_42039903 2018-12-28 02:57
    关注

    第3步客户端计算时,先将口令转为口令的哈希再计算,第4步服务器计算时直接取口令的哈希值计算,这样就满足具体的要求了。你看第3步和第4步的函数是不同的,第3步的函数多一个PRE和LEN值,表示对password要做预处理,即先计算哈希值。

    评论

报告相同问题?

悬赏问题

  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3