Laravel - ввод хэша с использованием SHA512 - PullRequest
0 голосов
/ 14 мая 2019

Я создаю запрос 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 голосов
/ 14 мая 2019

Хэш Laravel обеспечивает хеширование Bcrypt и Argon2.Если вы хотите использовать sha512, вы должны использовать функцию хэширования php.hash("sha512","your string");

0 голосов
/ 14 мая 2019

Должно работать нормально, как этот, но код вообще не тестируется, и существует миллион различных способов сделать это.Вам не нужно проверять хеш, потому что он не введен пользователем.

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