Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Laravel Crypt - Membandingkan Nilai

Seperti yang dijelaskan, Anda tidak bisa. Jawaban yang Anda berikan adalah bagaimana Anda akan mencapainya jika Anda tidak perlu mengoptimalkannya.

Jika Anda perlu mengoptimalkannya tanpa sepenuhnya mengorbankan nilai terenkripsi, dan telah diprofilkan untuk menemukan jumlah data yang dikembalikan dan diproses oleh filter Anda adalah penyebab utama penundaan, Anda dapat melakukan hal berikut.

Tambahkan bidang baru ke tabel yang akan menyimpan subset hash. Bergantung pada jumlah alamat email unik, Anda dapat menyetel seberapa besar subset ini. Catatan:Lebih kecil lebih baik, karena Anda membocorkan beberapa informasi tentang nilai terenkripsi menggunakan pendekatan ini. Misalnya, jika Anda menyimpan hash 1 byte dari alamat email, Anda mengurangi entropi enkripsi sebesar ~8 bit.

Saat Anda membuat kueri, pertama buat subset hash email dan tempatkan where klausa untuk mengembalikan hanya baris tersebut.

Semua ini mengasumsikan fungsi hash lebih murah daripada langkah dekripsi. Pendekatan ini akan mengharuskan Anda untuk menghitung ulang semua subset hash jika Anda ingin meningkatkan ukurannya, jadi memilih ukuran yang secara signifikan meningkatkan kinerja, tidak terlalu membahayakan enkripsi dan kemungkinan besar tidak perlu diubah saat Anda tumbuh adalah penting .

Catatan:Anda tidak boleh menggunakan hash lurus seperti MD5 dalam situasi ini. Bukan karena kerentanannya terhadap tabrakan, tetapi karena ruang kuncinya akan sangat kecil. Jika kinerja penting dan Anda menyimpan data dalam jumlah besar, Anda membuka sendiri serangan DOS di mana penyerang membuat sejumlah besar alamat email yang semuanya hash ke subset yang sama. Untuk mengatasi masalah ini, gunakan HMAC berfungsi dengan kunci rahasia.

Ingat, kecuali Anda memiliki alasan kinerja yang benar untuk perlu menambah kerumitan - jangan




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pagination berbasis kursor MySQL dengan banyak kolom

  2. Jika bersyarat dalam SQL Script untuk Mysql

  3. Bagaimana cara membuat indeks pada bagian tanggal bidang DATETIME di MySql

  4. MySQL:Periksa apakah pengguna ada dan lepaskan

  5. MySQL vs MongoDB