我现在有一个laravel应用程序,现在我要在核心php中构建它,由于登录密码是通过laravel中的bcrypt方法加密的,因此我在登录页面中遇到了问题。帮助我通过核心php验证加密密码
我尝试了password_hash('admin@12', PASSWORD_BCRYPT)
,但是仍然没有找到解决方案:纯文本为admin @ 12,加密文本为$ 2y $ 10 $ EHC8pQIUSYIBas943P6HEOEvZlQYAxI2zVGkwQiAkLTIDZrhbe6VG
enter image description here
\Session::flash('success', 'Your Account is activated please login to continue.');
User::create([
'username' => $request['username'],
'password' => bcrypt($request['password']),
'name' => $request['name'],
'card_number' => $request['card_number'],
'email' => $request['email'],
'phone' => $request['phone'],
'cnic' => $request['cnic'],
'address' => $request['address'],
'role' => "registered",
]);
答案 0 :(得分:4)
解决方案很简单:password_verify($password, $hash)
http://php.net/manual/en/function.password-verify.php
它可以与不同的算法一起工作,而无需指定事件(它读取哈希中的元信息)-并且它支持bcrypt。
要创建密码,请按照建议使用password_hash($value, PASSWORD_BCRYPT)
;在这里https://github.com/laravel/framework/blob/f10fe3e4cb4824df35e3e9d2e5d6756271f083ba/src/Illuminate/Hashing/BcryptHasher.php#L45,您可以找到Laravel解决方案(仅添加了cost
选项)