阅读(3041) (9)

Laravel 8 加密一个值

2021-06-29 17:21:06 更新

你可以使用 Crypt 门面提供的 encryptString 来加密一个值。所有加密的值都使用 OpenSSL 的 AES-256-CBC 来进行加密。此外,所有加密过的值都会使用消息认证码 (MAC) 来签名,以检测加密字符串是否被篡改过:

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Crypt;

class UserController extends Controller
{
    /**
     * Store a secret message for the user.
     *
     * @param  Request  $request
     * @param  int  $id
     * @return Response
     */
    public function storeSecret(Request $request, $id)
    {
        $user = User::findOrFail($id);

        $user->fill([
            'secret' => Crypt::encryptString($request->secret),
        ])->save();
    }
}