Oczywiście nie należy ich oglądać, dlatego ich wyszukiwanie byłoby problematyczne.
Jedną sztuczką, której użyłem w przeszłości, jest mieszanie zaszyfrowanych danych przed ich zaszyfrowaniem i przechowywanie skrótu w indeksowanej kolumnie. Oczywiście działa to tylko wtedy, gdy szukasz całej wartości; wartości częściowe nie będą miały tego samego skrótu.
Prawdopodobnie możesz to rozszerzyć, tworząc indeks skrótów „pełnego tekstu”, jeśli zajdzie taka potrzeba, ale może się to bardzo szybko skomplikować.
UZUPEŁNIENIE
Sugeruje się dodanie przypisu do mojej odpowiedzi podczas dość długiej debaty na czacie na temat podatności na ataki słownikowe, dlatego omówię potencjalne zagrożenie bezpieczeństwa dla powyższego podejścia.
Atak słownikowy: Atak słownikowy ma miejsce, gdy ktoś wstępnie hashuje listę znanych wartości i porównuje skróty z kolumną haszowaną w bazie danych. Jeśli uda im się znaleźć dopasowanie, prawdopodobne jest, że znana wartość jest faktycznie tym, co jest haszowane (Nie jest to jednak jednoznaczne, ponieważ skróty nie są gwarantowane jako unikalne). Zazwyczaj jest to łagodzone przez haszowanie wartości z dołączoną lub dodaną losową „solą”, aby skrót nie pasował do słownika, ale powyższa odpowiedź nie może użyć soli, ponieważ utracisz możliwość wyszukiwania.
Ten atak jest niebezpieczny w przypadku takich haseł: jeśli utworzysz słownik popularnych skrótów haseł, możesz szybko przeszukać tabelę pod kątem tej wartości skrótu i zidentyfikować użytkownika, który ma takie hasło, i skutecznie wyodrębnić dane uwierzytelniające w celu kradzieży tożsamości tego użytkownika .
Jest mniej niebezpieczny dla przedmiotów o wysokim stopniu liczności, takich jak numery SSN, numery kart kredytowych, identyfikatory GUID itp. (Ale istnieją różne rodzaje ryzyka związane z ich przechowywaniem, więc nie jestem skłonny doradzać w sprawie ich przechowywania ).
Powodem tego jest, aby atak słownikowy zadziałał, musisz mieć wstępnie zbudowany słownik możliwych wartości i ich skrótów. Teoretycznie możesz zbudować słownik wszystkich możliwych SSN (miliard wierszy, zakładając, że wszystkie permutacje formatowania zostaną usunięte; kilkadziesiąt bilionów wpisów dla kart kredytowych) ... ale to zwykle nie jest celem ataku słownikowego i w zasadzie staje się porównywalny z atakiem brutalnej siły, w którym systematycznie badasz każdą wartość.
Możesz także poszukać określonego numeru SSN lub numeru karty kredytowej, jeśli próbujesz dopasować SSN do konkretnej osoby. Ponownie, zwykle nie jest to cel ataku słownikowego, ale możliwe do zrobienia, więc jeśli jest to ryzyko, którego należy unikać, moja odpowiedź nie jest dla ciebie dobrym rozwiązaniem.
Więc masz to. Podobnie jak w przypadku wszystkich zaszyfrowanych danych, zwykle są one szyfrowane z jakiegoś powodu, więc bądź świadomy swoich danych i tego, przed czym chcesz je chronić.