Rõ ràng là chúng không có nghĩa là được xem, do đó tìm kiếm trên chúng sẽ có vấn đề.
Một mẹo tôi đã sử dụng trong quá khứ là băm dữ liệu được mã hóa trước khi mã hóa nó và lưu trữ hàm băm trong một cột được lập chỉ mục. Tất nhiên, điều này chỉ hoạt động nếu bạn đang tìm kiếm trên toàn bộ giá trị; giá trị một phần sẽ không có cùng hàm băm.
Bạn có thể có thể mở rộng điều này bằng cách tạo một chỉ mục băm "toàn văn", nếu bạn cần, nhưng nó có thể trở nên phức tạp rất nhanh.
ĐỊA CHỈ
Có ý kiến cho rằng tôi nên thêm chú thích vào câu trả lời của mình cho một cuộc tranh luận khá dài trong cuộc trò chuyện về tính dễ bị tổn thương trước các cuộc tấn công từ điển, vì vậy tôi sẽ thảo luận về rủi ro bảo mật tiềm ẩn này cho phương pháp trên.
Tấn công từ điển: Tấn công từ điển là khi ai đó băm trước một danh sách các giá trị đã biết và so sánh các giá trị băm với cột băm của bạn trong cơ sở dữ liệu. Nếu họ có thể tìm thấy kết quả khớp, có khả năng giá trị đã biết thực sự là giá trị được băm (Mặc dù điều đó không xác định, vì băm không được đảm bảo là duy nhất). Điều này thường được giảm thiểu bằng cách băm giá trị bằng một "muối" ngẫu nhiên được nối hoặc thêm vào để hàm băm không khớp với từ điển, nhưng câu trả lời trên không thể sử dụng muối vì bạn mất khả năng tìm kiếm.
Cuộc tấn công này rất nguy hiểm khi xử lý những thứ như mật khẩu: nếu bạn tạo một từ điển băm mật khẩu phổ biến, sau đó bạn có thể nhanh chóng tìm kiếm bảng cho giá trị băm đó và xác định người dùng có mật khẩu đó và trích xuất thông tin xác thực để đánh cắp danh tính người dùng đó .
Nó ít nguy hiểm hơn đối với các mặt hàng có mức độ chính xác cao, như SSN, số thẻ tín dụng, GUID, v.v. (nhưng có những rủi ro khác nhau [đọc: pháp lý] liên quan đến việc lưu trữ những thứ này, vì vậy tôi không có xu hướng khuyên bạn nên lưu trữ chúng ).
Lý do cho điều này là để một cuộc tấn công từ điển hoạt động, bạn cần phải xây dựng sẵn một từ điển các giá trị có thể và băm của chúng. Về lý thuyết, bạn có thể xây dựng một từ điển của tất cả các SSN có thể (một tỷ hàng, giả sử tất cả các hoán vị định dạng đã bị xóa; hàng chục nghìn tỷ mục nhập cho thẻ tín dụng) ... nhưng đó thường không phải là điểm của một cuộc tấn công từ điển và về cơ bản trở nên tương đương với một cuộc tấn công vũ phu, nơi bạn đang điều tra một cách có hệ thống mọi giá trị.
Bạn cũng có thể tìm số SSN hoặc số thẻ tín dụng cụ thể , nếu bạn đang cố khớp SSN với một người. Một lần nữa, thường không phải là điểm của một cuộc tấn công từ điển, nhưng có thể làm được, vì vậy nếu đây là một rủi ro bạn cần tránh, câu trả lời của tôi không phải là một giải pháp tốt cho bạn.
Vì vậy, có bạn có nó. Như với tất cả các dữ liệu được mã hóa, nó thường được mã hóa vì một lý do, vì vậy hãy lưu ý đến dữ liệu của bạn và những gì bạn đang cố gắng bảo vệ dữ liệu đó.