Argon2id如何在PHP中存储盐?

问题描述 投票:1回答:2

Argon2id的PHP实现为开发人员生成了一个salt。应用程序如何跟踪这种盐?作为开发人员,我如何考虑备份,以及确保我不会失盐?

php hash passwords salt
2个回答
3
投票

正如Luis所说,salt存储在散列函数的结果中,由$分隔:

password_hash('secret', PASSWORD_ARGON2I);

会返回这样的东西:

$argon2i$v=19$m=1024,t=2,p=2$MEhSZkJLQXUxRzljNE5hMw$33pvelMsxqOn/1VV2pnjmKJUECBhilzOZ2+Gq/FxCP4

哪里:

  • argon2i是算法
  • v=19是版本
  • m=1024,t=2,p=2是内存,迭代和并行选项
  • MEhSZkJLQXUxRzljNE5hMw是盐
  • 33pvelMsxqOn/1VV2pnjmKJUECBhilzOZ2+Gq/FxCP4是实际的哈希。

所以你只需要保存整个字符串,它将保留PHP所需的散列方法,如password_verify


2
投票

即使the documentation for the password_hash() function将函数返回值标记为“hash”,它实际上也是一个复合字符串,它还包含salt和一些元数据来标识所使用的算法。伴侣password_verify() function解析这些信息以做正确的事情。

所以你只需要存储password_hash()的结果。

© www.soinside.com 2019 - 2024. All rights reserved.