在使用Laravel 5.1
的项目中,在哈希默认类旁边,我还使用库对密码进行哈希处理。那么,如何检查Laravel
哈希是否对字符串进行哈希处理呢?
范例:
$2y$10$ug8B6Pxs546eQBNICxsEOOH3NgpXjOIo.g4rf1FPZk2xJncWcFUpu
最佳答案
您可以检查长度
if( strlen($hash) == 60 )
PASSWORD_BCRYPT-使用CRYPT_BLOWFISH算法创建哈希。
这将使用“ $ 2y $”产生与标准crypt()兼容的哈希
标识符。结果将始终为60个字符串或FALSE
失败。
http://php.net/manual/en/function.password-hash.php
另外,您可以检查$ 2y $标识符。用这样的regx
preg_match('/^\$2y\$/', $hash );
甚至使用
strpos($hash, '$2y$')
,尽管我不确定它会抵消多少偏移量。所以举个例子
$hash = '$2y$10$ug8B6Pxs546eQBNICxsEOOH3NgpXjOIo.g4rf1FPZk2xJncWcFUpu';
if( strlen($hash) == 60 && preg_match('/^\$2y\$/', $hash ))
您可以完全确定,如果它以
$2y$
开头且长度为60,则将对其进行哈希处理。碰到类似情况的机会可能不零,但这实际上是零。
关于php - 如何检查Laravel Hash是否对字符串进行哈希处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40034186/