php. Должен ли я шифровать адреса электронной почты?

Когда пользователи регистрируются, я должен хранить их электронную почту в db как есть или хеш. Я хочу, чтобы иметь возможность расшифровать его позже, так что я должен использовать md5?

Спасибо!

Solutions Collecting From Web of "php. Должен ли я шифровать адреса электронной почты?"

Нет, md5() – односторонняя хеш-функция . Вы не можете расшифровать его значение. Обычно он используется для паролей, которые не нужно расшифровывать. Вместо этого вы сравниваете хеши как:

 $salt = "adding some secret to increasse security"; if (md5($user_password . $salt) == $user_password_hash_from_db) { ## password is ok } 

Если вы хотите расшифровать свое значение, используйте вместо этого функцию crypt php. Но для этого могут потребоваться дополнительные модули.

В любом случае я не вижу практической причины для шифрования электронной почты.

Не секрет, что шифровать адреса электронной почты. Если кто-то действительно хочет, чтобы их электронная почта была приватной, они не дали бы ее на ваш сайт в первую очередь 🙂

MD5 – это хеш, который делает все возможное, чтобы вернуть исходное значение. Вы должны использовать шифрование вместо хэша, если хотите вернуть его обратно.

Я согласен с тем, что электронные письма являются (второстепенной) проблемой информационной безопасности, поскольку это становится личной информацией, которую вы выпустили в мир, если кто-то получает доступ к вашей базе данных, но вам будет необходимо использовать метод двустороннего шифрования / дешифрования как сказал Иван.

Просто имейте в виду, что базовое хеширование MD5 больше не является безопасным хешем.

Поскольку wikipedia говорит по-разному, больше не защищается ( http://en.wikipedia.org/wiki/MD5 ):

US-CERT Департамента внутренней безопасности США заявил, что MD5 «следует считать криптографически сломанным и непригодным для дальнейшего использования» [7], и большинство заявлений правительства США будут вынуждены перейти к семейству хэш-функций SHA-2 к 2010 году. [8]

Я думаю, что одна из основных проблем заключается в том, что в наши дни есть радужные таблицы хешей md5, поэтому голый md5 очень восприимчив к жестокому форсированию.

Подумайте, что это полезный инструмент для незначительного обложения и дезинфекции сложных наборов данных, но это уже не по-настоящему безопасный хеш. Могут быть специальные обручи, которые вы можете прыгать, как с помощью соли, так и с помощью вложенных хешей md5, чтобы сделать их более безопасными, хотя я не криптограф. Возможно, вы захотите проверить другие SO-потоки, подобные этому, для хороших общих решений шифрования.

Когда вы используете md5, вы не сможете его расшифровать. md5 – односторонняя -hash-функция.

md5 не является методом шифрования, это односторонний хеш. Нет причин шифровать адреса электронной почты в базе данных. Я оставил бы их как есть.

Если вы собираетесь расшифровать их позже, MD5 не будет вариантом, поскольку он только хеширует строки, вы теряете исходные данные.

Я предлагаю вам попробовать некоторые встроенные функции шифрования PHP для этого.

Другие ответы говорят все.

Тем не менее, вы всегда должны шифровать хэш- пароли, по крайней мере, с md5 () и солью, как указано в ответе Ивана.