Laravel Security - fantasy0107/notes GitHub Wiki
Encryption
使用
- OpenSSL
- AES-256
- AES-128
- message authentication code(MAC)
設定
php artisan key:generate
使用 Encrypter
加密數值
所有加密的數值都是使用 AES-256-CBC 和 OpenSSL
而且所有加密過的數值都是用MAC去偵測任何的改變
encrypt($value);
解密數值
如果加密後的數值沒有辦法被適當的解密會丟出 DecryptException 例外
use Illuminate\Contracts\Encryption\DecryptException;
try {
$decrypted = decrypt($encryptedValue);
} catch (DecryptException $e) {
//
}
加密但沒有序列化
任何的加密都會 serialize 所以像是array或object都可以用
如果沒有要序列化的話要用下面方式
//加密
$encrypted = Crypt::encryptString('Hello world.');
//解密
$decrypted = Crypt::decryptString($encrypted);