laravel 上的哈希函数无法解密从表单给出的字符串
hash function on laravel cant decrypt string given from form
我目前正在创建一个应用程序,要求我在 laravel 上使用 Bcrypt 哈希函数,但出于某种原因,当我执行 dd 时,它总是说要解密的字符串是 'false',但如果我使用 plain-text,它会显示 'true' with dd.
有关更多上下文,我将提供相关代码
加密:
$encryptionKey = "PNJiX9RhLmnzJw2vRT1kolbYd3iwj96z";
// $new_hash=Hash::make($encryptionKey);
$new_hash = Hash::make($encryptionKey, [
'rounds' => 12,
]);
纯文本解密得到'true'结果(我也用在线解密工具检查过):
dd(Hash::check( 'PNJiX9RhLmnzJw2vRT1kolbYd3iwj96z', 'ytdSV0MQFuXSTisGoSPnw.efdnl9.Hk8x907U5TcgJ78mobozhUoK'));
用纯文本解密得到 'false' 结果:
$this->validate($request, [
'key' => 'required',
]);
$hashedPassword = 'PNJiX9RhLmnzJw2vRT1kolbYd3iwj96z';
$encryptionOldKey = $request->key;
dd(Hash::check( $encryptionOldKey, $hashedPassword));
Blade表单解密相关文件:
<div class="modal-body">
<form action="{{ url('/home/decrypt', $file->id ) }} " method="POST" enctype="multipart/form-data">
{{ csrf_field() }}
<div class="form-group">
<b>Key</b>
<input type="text" class="form-control" name="key" >
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel <i class="ni ni-fat-remove"></i></button>
<button type="submit" class="btn btn-primary">Decrypt<i class="ni ni-check-bold"></i></button>
</div>
</form>
解决方案
始终 (Hash::make) 接受纯文本(原始密码)而不是 encrypted/hased。
供参考:
use Illuminate\Support\Facades\Hash;
$newPassword='12345678'; // original/plain-text
$hashedPassword=Hash::make($newPassword);
if (Hash::check($newPassword, $hashedPassword)) {
// The passwords match...
}
我目前正在创建一个应用程序,要求我在 laravel 上使用 Bcrypt 哈希函数,但出于某种原因,当我执行 dd 时,它总是说要解密的字符串是 'false',但如果我使用 plain-text,它会显示 'true' with dd.
有关更多上下文,我将提供相关代码
加密:
$encryptionKey = "PNJiX9RhLmnzJw2vRT1kolbYd3iwj96z";
// $new_hash=Hash::make($encryptionKey);
$new_hash = Hash::make($encryptionKey, [
'rounds' => 12,
]);
纯文本解密得到'true'结果(我也用在线解密工具检查过):
dd(Hash::check( 'PNJiX9RhLmnzJw2vRT1kolbYd3iwj96z', 'ytdSV0MQFuXSTisGoSPnw.efdnl9.Hk8x907U5TcgJ78mobozhUoK'));
用纯文本解密得到 'false' 结果:
$this->validate($request, [
'key' => 'required',
]);
$hashedPassword = 'PNJiX9RhLmnzJw2vRT1kolbYd3iwj96z';
$encryptionOldKey = $request->key;
dd(Hash::check( $encryptionOldKey, $hashedPassword));
Blade表单解密相关文件:
<div class="modal-body">
<form action="{{ url('/home/decrypt', $file->id ) }} " method="POST" enctype="multipart/form-data">
{{ csrf_field() }}
<div class="form-group">
<b>Key</b>
<input type="text" class="form-control" name="key" >
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel <i class="ni ni-fat-remove"></i></button>
<button type="submit" class="btn btn-primary">Decrypt<i class="ni ni-check-bold"></i></button>
</div>
</form>
解决方案
始终 (Hash::make) 接受纯文本(原始密码)而不是 encrypted/hased。
供参考:
use Illuminate\Support\Facades\Hash;
$newPassword='12345678'; // original/plain-text
$hashedPassword=Hash::make($newPassword);
if (Hash::check($newPassword, $hashedPassword)) {
// The passwords match...
}