laravel - Laravel如何用盐创建sha256哈希
问题描述
我有一个使用客户端 Sha256 散列的正在运行的应用程序。
我想改用 Laravel 服务器端 bcrypt 散列。
我的策略是用 bcrypt 包装所有密码,所以我有bcrypt(sha256('password'))
,然后在用户尝试登录时重新哈希密码,所以我只有bcrypt('password')
.
我的问题是在用户尝试使用 Sha256 密码登录时对其进行身份验证。
我尝试通过运行
if (hash('sha256', 'password' . 'salt') == $stored_pw)
但没有运气来验证它们。我只是相当确定客户端散列只是附加了盐,我不确定 Laravelhash
函数是否添加了它自己的盐。
这是客户端从密码 1234567 创建的哈希:$5$a0FpUG9JUgkj1d6H$eSSzXebYU87wPAWSTRJGyWw/kOMgDvPqcri4CI1QCV0
我正在尝试使用盐、密码和 Laravel 哈希函数重新创建相同的哈希。
如何指定 Sha256 函数应使用特定的盐?
解决方案
尝试。
use phpseclib\Crypt\Hash;
or
use Hash
\Hash::make($request->password);
或者
$hash = Hash::make('secret');
$input = 'secret';
if(Hash::check($input, $hash)){
// the input matches the secret
}
推荐阅读
- javascript - How to translate all objects from it's data attribute?
- javascript - Unshifting vs pushing on a v-for array
- regex - Regular Expression For EURO Format
- gpu - EmguCv : Why I run Yolo with Cuda support on Emgu.Cv 4.5.1 is much slower than CPU
- c - How to reset Step count in Tizen Native to zero programatically
- c# - Microsoft graph list memebers of a group
- python-3.x - What is the new attribute for initialize_all_variables, global_variables_initializer in the latest version of tensorflow?
- python - Python argv "False, false' are recognized as True
- android - 处理货币交易时识别安卓设备
- datetime - 裁剪时间