根据its documentation PHP的password_verify()
函数
如果密码和哈希匹配则返回TRUE,否则返回或FALSE [由我添加的亮点]
文档还指出函数参数是:
password
用户的密码。
hash
由password_hash()创建的哈希。
对于错误 / 例外 / 警告,对于这些参数“已损坏”或无效。
一些快速测试表明,对于传入“垃圾”(特别是hash
参数),问题相当宽容。我的问题是,我是否可以依赖这种行为,因为它会在“返回[...]或其他方面”部分暗示?
答案 0 :(得分:1)
对于PHP文档:如果没有提到异常/错误/警告,则不会出现异常/错误/警告。如果遇到没有任何文档的异常,则它是文档中的BUG,您可以将其报告给PHP团队进行修复。所以写一个干净的if (!password_verify(...))
是可以的。
对于password_verify
:区分无效哈希或密码验证密码错误是没有意义的,因此如果哈希值与密码不匹配,password_verify
只返回false
。这种行为使编程更容易。