У меня есть форма, которая берет номер социального страхования, и мне нужно написать код, который проверяет, был ли он введен в течение последних двух дней. Все это легко.
Мой текущий план состоит в том, чтобы создать таблицу ssn_hash(id, ssn_hash, date)
и хэш / солью ssn, затем вставьте их в базу данных. После этого создайте вид, отображающий последние два дня. Соль, являющаяся некоторыми другими пользовательскими данными, взятыми из формы.
Я хотел бы знать 2 вещи:
crypt
отлично подходит для следующих предостережений:
openssl_random_pseudo_bytes
вместо.attr_encrypted
популярный гем Ruby on Rails делает это. Просто убедитесь, что вы генерируете уникальную соль для каждой записи. Никогда не используйте соль повторно.CRYPT_BLOWFISH
или же CRYPT_SHA512
,Функции шифрования пароля здесь вам не помогут, если вам нужно быстро просмотреть, использовался ли номер. Вместо этого вам придется использовать прямой хэш типа SHA1, чтобы вы могли выполнить обратный поиск.
Вы хотите быть абсолютно уверены, что ваш сервер защищен должным образом. Очистка данных из этой таблицы на регулярной основе, вероятно, также является хорошей идеей.