Using The Encrypter
Encrypting A Value
Sie können einen Wert mit dem encrypt-Helfer verschlüsseln. Alle verschlüsselten Werte werden mit OpenSSL und der AES-256-CBC-Chiffre verschlüsselt. Darüber hinaus werden alle verschlüsselten Werte mit einem Message Authentication Code (MAC) signiert, um Änderungen an der verschlüsselten Zeichenfolge zu erkennen:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\User;
use Illuminate\Http\Request;
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' => encrypt($request->secret),
])->save();
}
}
Encrypting Without Serialization
Verschlüsselte Werte werden bei der Verschlüsselung durch die serialize geleitet, was die Verschlüsselung von Objekten und Arrays ermöglicht. Daher müssen Nicht-PHP-Clients, die verschlüsselte Werte erhalten, die Daten unserialize. Wenn Sie Werte ohne Serialisierung verschlüsseln und entschlüsseln möchten, können Sie die Methoden encryptString und decryptString der Crypt-Fassade verwenden:
use Illuminate\Support\Facades\Crypt;
$encrypted = Crypt::encryptString('Hello world.');
$decrypted = Crypt::decryptString($encrypted);
Decrypting A Value
Sie können Werte mit dem decrypt-Helfer entschlüsseln. Wenn der Wert nicht richtig entschlüsselt werden kann, z.B. wenn der MAC ungültig ist, wird eine Illuminate\Contracts\Encryption\DecryptException geworfen:
use Illuminate\Contracts\Encryption\DecryptException;
try {
$decrypted = decrypt($encryptedValue);
} catch (DecryptException $e) {
//
}