Laravel - 使用 SHA512 的哈希输入

Laravel - Hash input using SHA512

我正在创建一个 API POST 请求,但我想散列一些用户输入(referenceID 和 phone_no)并使用 SHA512 保存到散列字段中。我想把它放在控制器中。

我已经创建了模型 Class 和控制器

型号

    protected $fillable = [
        'referenceID' ,
        'phone_no',
        'hash'
    ]; 

控制器

    public function store(Request $request)
    {
        $request->validate([
            'referenceID' => 'required',
            'phone_no' => 'required',
        'hash' => 'required'
        ]);

        $valrequest = Task::create($request->all());

        return response()->json([
            'message' => 'Great success! New validation request created',
            'valrequest' => $valrequest, 201
        ]);
    }

我想散列用户输入(referenceID 和 phone_no)并使用 SHA512 保存到散列字段中。我想把它放在控制器中。我该怎么做。

像这样应该可以正常工作,但代码根本没有经过测试,而且有大约一百万种不同的方法可以做到这一点。您不需要验证哈希,因为它不是用户输入。

public function store(Request $request)
{
    $request->validate([
        'referenceID' => 'required',
        'phone_no' => 'required',
    ]);

    $referenceID = $request->referenceID;
    $phone_no = $request->phone_no;
    $hash = hash('sha512', $referenceID . $phone_no);

    $valrequest = Task::create(compact('referenceID', 'phone_no', 'hash'));

    return response()->json([
        'message' => 'Great success! New validation request created',
        'valrequest' => $valrequest, 201
    ]);
}

Laravel hash 提供 Bcrypt 和 Argon2 哈希。如果你想使用 sha512,你应该使用 php 散列函数。 hash("sha512","your string");