Encrypt DB Fields preserving search functionality
I would actually not advise encrypting something like a user id
. There should be practically no risk to anyone seeing it and you're really making a lot more work for yourself than necessary. An id
identifying a user is not what I imagine a lot of people are going to call "sensitive information".
I'm actually having a hard time trying to think of a case of sensitive information that you would like to use a WHERE
clause on in SELECT
. I wouldn't never want to search against SSNs
, for example.
If you wanted to compare user input against something like an SSN
there's generally other information such as name
and DOB
that's entered alongside the SSN
. I would pull all records out into an array with that match that information (name
, dob
) and then check any resultant entries with the SSN
provided and the SSN
from the entry, decrypted.