我目前正在一個關于 QR 碼的 Laravel 專案中作業。每次房主填寫客人的詳細資訊時,系統都會生成一個唯一的 6 位代碼。現在,我只想散列 SHA256 中的唯一代碼,但它不起作用。我可以得到一些幫助嗎?
這是我的 GuestController:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Guest;
use App\Illuminate\Support\Facades\Hash;
use SimpleSoftwareIO\QrCode\Facades\QrCode;
class GuestController extends Controller
{
public function create()
{
return view('pages.guest.create');
}
public function store(Request $request)
{
$guest = new Guest;
$guest->code = random_int(100000, 999999);
$guest->hash = Hash::make(hash('sha256', $guest['code']));
$guest->guestname = $request->input('guestname');
$guest->guestphone = $request->input('guestphone');
$guest->guestic = $request->input('guestic');
$guest->guestcar = $request->input('guestcar');
$guest->datevisit = $request->input('datevisit');
$guest->timevisit = $request->input('timevisit');
$guest->save();
return redirect('show-pass')->with('status', 'Guest Added Successfully');
}
public function delete($id)
{
$guest = Guest::find($id);
$guest->delete();
return redirect('show-pass')->with('status', 'Guest Deleted Successfully');
}
public function generate($id)
{
$guest = Guest::findOrFail($id);
$qrcode = QrCode::size(150)->generate($guest->code);
return view('pages.guest.generate', compact('qrcode'));
}
public function search(Request $request)
{
//Get the search value from the request
$search = $request->input('search');
//Search in the code from the list
$guest = Guest::query()
->where('code', 'LIKE', "%{$search}%")
->get();
//Return the search view with the results compacted
return view('pages.guest.search', compact('guest'));
}
}
uj5u.com熱心網友回復:
您正在創建一個sha256散列,然后通過bcryptLaravel 的Hash外觀對該散列進行散列。Laravel 的Hash外觀只支持bcrypt和Argon2。這就解釋了為什么你得到不同的結果。
只需使用香草 PHPhash()函式并洗掉 Laravel Hash。
$guest->hash = hash('sha256', $guest['code']);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/402795.html
標籤:
