nuri60 Mesela MySQL kullanıyorsanız:
$key = '12345';
$names = ['Nurullah', 'Mustafa'];
$insertData = [];
foreach($names as $name) {
$insertData[] = [
'name' => DB::raw("AES_ENCRYPT('{$name}', '{$key}')"),
];
}
DB::table('users')
->insert($insertData);
$key = '12345';
$search = 'Nu%';
$results = DB::table('users')
->whereRaw("AES_DECRYPT(name, ?) LIKE ?", [$key, $search])
->get();
gibi bir şey olabilir ama
- Her satırda şifre çözülmesi gerekeceği için index scan mümkün değil.
- Decrypt işleminin CPU kullanımı üzerinde etkisi olacaktır.
- 1 ve 2. madde sebebiyle kayıt sayısı arttıkça yavaşlamayı hissedeceksiniz.
- Key kaybolursa veri gider. Bu veriler kullanıcı şifresi gibi eskisi bilinmese de bir şekilde yerine yenisi konabilecek veriler değiller.
- Key değişirse tüm veriyi eski key ile açıp yeni key ile tekrar şifrelemeniz gerekir.
Bence mantıklı değil.