Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Krypta Laravela - Porównanie wartości

Jak opisano, nie możesz. Odpowiedź, której udzieliłeś, jest sposobem, w jaki możesz to osiągnąć, jeśli nie musisz go optymalizować.

Jeśli potrzebujesz zoptymalizować go bez całkowicie naruszenie zaszyfrowanej wartości i profilowanie w celu znalezienia ilości danych zwracanych i przetwarzanych przez filtr jest główną przyczyną opóźnień, możesz wykonać następujące czynności.

Dodaj do tabeli nowe pole, które będzie przechowywać podzbiór skrótu. W zależności od liczby unikalnych adresów e-mail możesz dostosować wielkość tego podzbioru. Uwaga:Im mniejszy, tym lepiej, ponieważ przy użyciu tej metody wyciekasz niektóre informacje na temat zaszyfrowanej wartości. Na przykład, jeśli przechowujesz 1-bajtowy skrót adresu e-mail, zmniejszasz entropię szyfrowania o ~8 bitów.

Podczas zapytania najpierw utwórz podzbiór skrótu wiadomości e-mail i umieść where klauzula zwracająca tylko te wiersze.

Wszystko to zakłada, że ​​funkcja skrótu jest tańsza niż krok odszyfrowywania. Takie podejście wymagałoby ponownego obliczenia wszystkich podzbiorów skrótów, jeśli chcesz zwiększyć jego rozmiar, więc wybranie rozmiaru, który znacząco zwiększa wydajność, nie zagraża nadmiernie szyfrowania i najprawdopodobniej nie będzie wymagało zmian w miarę rozwoju, jest ważne .

Uwaga:w tej sytuacji nie należy używać prostego skrótu, takiego jak MD5. Nie dlatego, że jest podatny na kolizje, ale dlatego, że kluczowa przestrzeń będzie tak mała. Jeśli wydajność jest istotna i przechowujesz duże ilości danych, otwierasz się na ataki DOS, w których atakujący tworzy duże ilości adresów e-mail, które wszystkie mieszają z tym samym podzbiorem. Aby rozwiązać ten problem, użyj HMAC funkcja z tajnym kluczem.

Pamiętaj, chyba że masz prawdziwe powody wydajności, aby dodać złożoność – nie rób tego




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak podłączyć MySQL Workbench do Amazon RDS?

  2. Jak usunąć znaki nowej linii z wierszy danych w mysql?

  3. Nie można połączyć się z MySQL na Macu — brak pliku mysql.sock

  4. problem z kluczem obcym w jdbc

  5. Co oznacza dwukropek przed literałem w instrukcji SQL?