Penyulitan dan penyahsulitan
<?php namespace App\Http\Controllers; use App\User;use Illuminate\Http\Request; use App\Http\Controllers\Controller;class UserController extends Controller{ /** * 存储用户的保密信息 * * @param Request $request * @param int $id * @return Response */ public function storeSecret(Request $request, $id) { $user = User::findOrFail($id); $user->fill([ 'secret' => encrypt($request->secret) ])->save(); } }
Tiada penyulitan bersiri
Semasa proses penyulitan, nilai yang disulitkan siri
diserikan dan diluluskan, membenarkan objek dan tatasusunan yang disulitkan. Oleh itu, pelanggan bukan PHP yang menerima nilai yang disulitkan perlu menyahsiri
menyahsiri data. Jika anda ingin menyulitkan dan menyahsulit nilai tanpa bersiri, anda boleh menggunakan kaedah Crypt
Facade encryptString
dan decryptString
: serialize
序列化后传递,允许加密对象和数组。因此,接收加密值的非 PHP 客户端需要对数据进行 unserialize
反序列化。如果想要在不序列化的情况下加密解密值,你可以使用 Crypt
Facade 的 encryptString
和 decryptString
方法:
use Illuminate\Support\Facades\Crypt; $encrypted = Crypt::encryptString('Hello world.'); $decrypted = Crypt::decryptString($encrypted);
解密一个值
你可以使用辅助函数 decrypt
来进行解密。如果该值不能被正确解密,例如 MAC 无效时,会抛出异常 IlluminateContractsEncryptionDecryptException
use Illuminate\Contracts\Encryption\DecryptException;try { $decrypted = decrypt($encryptedValue); } catch (DecryptException $e) { // }
Artikel ini pertama kali diterbitkan di tapak web 🎜LearnKu.com🎜. 🎜🎜 rrreee