Php 将密码盐与密码散列分开存储?

Php 将密码盐与密码散列分开存储?,php,passwords,password-encryption,Php,Passwords,Password Encryption,可能重复: 假设使用正确的密码哈希算法并为每个密码生成不同的盐 将盐与密码散列分开存储是否存在安全风险?例如,在数据库表中,将密码散列存储在一列中,将密码盐存储在另一列中 我看到了通过使用特定算法将salt嵌入密码散列本身的策略。稍后,可以从密码哈希中提取salt。这更安全吗?从我读过的所有内容和做过的每件事来看,将密码哈希和密码salt存储在单独的列中并没有错,这是最常见的方法 身份验证的基本方法应如下所示: 使用用户提供的用户名或电子邮件检索用户id和密码 Concat用户提供的密码输入

可能重复:

假设使用正确的密码哈希算法并为每个密码生成不同的盐

将盐与密码散列分开存储是否存在安全风险?例如,在数据库表中,将密码散列存储在一列中,将密码盐存储在另一列中


我看到了通过使用特定算法将salt嵌入密码散列本身的策略。稍后,可以从密码哈希中提取salt。这更安全吗?

从我读过的所有内容和做过的每件事来看,将密码哈希和密码salt存储在单独的列中并没有错,这是最常见的方法

身份验证的基本方法应如下所示:

  • 使用用户提供的用户名或电子邮件检索用户id和密码
  • Concat用户提供的密码输入和检索到的salt
  • 对组合字符串使用哈希算法
  • 对照数据库中的哈希检查创建的哈希

  • 这没什么区别。将它们存储在同一列中更方便。如果有的话,将它们分开存储会更安全(但实际上这并不重要)。感谢您的澄清