当您需要将用户明文密码安全地存储在数据库中,但又担心密码泄露风险时,本工具可以直接在浏览器中模拟PHP的password_hash()函数,为您生成一个不可逆的安全哈希值。PHP密码哈希是一种为存储用户登录凭据而设计的单向加密过程,它将任意长度的字符串(通常是用户密码)通过特定的算法(如BCrypt或Argon2)转换成固定长度的、唯一的哈希字符串,并自动嵌入随机的盐值(salt)和成本参数,从而有效抵御彩虹表攻击和暴力破解。
password_verify()函数进行验证测试,方便开发调试。password_hash()哈希字符串,您可以直接复制使用。问:如何用PHP验证这个工具生成的哈希?
使用password_verify('用户输入的密码', '工具生成的哈希字符串')。这是唯一正确的验证方式,切勿直接比较哈希字符串。
问:password_hash默认成本因子是多少?
默认成本因子是10。这意味着BCrypt算法会进行2^10次哈希迭代。您可以通过工具调整这个值,生产环境中建议在10-12之间,以平衡安全性与服务器负载。
此工具仅为开发测试和演示用途,请勿用于生产环境中的真实用户密码加密。真实密码哈希必须在您的PHP服务器后端生成,以确保盐值的随机性和过程的安全性。工具生成的哈希值包含算法、成本和盐值信息,总长度通常为60字符(BCrypt)或更长(Argon2)。请确保您的数据库字段有足够的长度来存储完整的哈希字符串。
对于绝大多数PHP应用,使用默认的password_hash($password, PASSWORD_DEFAULT)(即BCrypt)即可。PHP会自动升级PASSWORD_DEFAULT所代表的算法到当前版本认为最安全的选项。如果您使用Argon2算法,请务必确认服务器已安装并启用对应的扩展(如libsodium)。一个典型示例:输入密码“MySecret123!”,选择PASSWORD_BCRYPT,成本因子设为11,可能生成类似“$2y$11$SomeRandomSaltValueHere...HashedOutput”的字符串,其中“$2y$11$”分别标识了BCrypt算法和成本因子11。