Laravel-使用SHA512的哈希输入

时间:2019-05-14 11:20:56

标签: laravel api sha512

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

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

型号

    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保存到哈希字段中。我想把它放在控制器中。我该怎么做。

2 个答案:

答案 0 :(得分:0)

应该可以这样工作,但是代码根本没有经过测试,并且有大约一百万种不同的方法可以执行此操作。您无需验证哈希,因为它不需要用户输入。

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
    ]);
}

答案 1 :(得分:0)

Laravel哈希提供Bcrypt和Argon2哈希。如果要使用sha512,则应使用php哈希函数。 hash("sha512","your string");