У меня есть веб-сайт, на котором я хочу, чтобы люди, у которых нет учетной записи, могли отказаться от получения электронных писем. Этого можно добиться, просто сохранив их адреса электронной почты в таблице «черных списков» и просматривая их перед отправкой почты.
Чтобы соблюдать защиту данных и по соображениям безопасности, я хочу хранить электронные письма в зашифрованном/хешированном виде. Я думал о простом md5(password)
, но его слишком легко взломать/перебором. Вторая мысль - использовать bcrypt/scrypt для медленной функции хеширования, но у них есть немного соли для каждой записи, поэтому мне нужно будет хешировать почту для каждой записи для сравнения. Это было бы довольно медленно, если бы время выполнения было равно O(n)
, где n — количество записей в черном списке.
Есть ли другой способ безопасного хеширования почты для быстрого сравнения с черным списком? Это должно быть время выполнения O(1)
, независимо от того, сколько записей.