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...
}