Я работаю над системой CMS, и хочу добавить функцию для защиты данных пользователя. Конечно, пароли хэшируются и могут быть декодированы только с помощью грубой форсировки. Но теперь речь идет о остальной части данных, например, о их почтовом адресе. Я хотел бы иметь функцию, которая кодирует почтовый адрес, когда пользователь регистрируется, который может быть декодирован каждый раз, когда почта должна быть отправлена. Теперь проблема с хэшированием заключается в том, что вы не можете легко преобразовать ее (я думаю), по крайней мере с md5 и sh1 и аналогичными алгоритмами, это невозможно, так что это не то, что я хочу.
Я хотел бы иметь функцию, что соль может использоваться в процессе en- и decoding. Это означает, что у меня есть случайная строка, хранящаяся где-то в веб-приложении, которая используется как «семя» или «соль» для этого процесса, поэтому результат будет другим, если эта случайная строка отличается, это затрудняет процесс декодирования хакеры (например) ворвались в базу данных и украли данные.
Я видел функцию в PHP, называемую base64_encode()
и base64_decode()
, эти функции могут очень легко декодировать данные и декодировать их. Проблема с этими функциями заключается в том, что нет параметра «salt», и я не думаю, что это очень хорошо, как защита. Есть ли функция, которая делает что-то аналогичное с большей защитой с функцией en- и decode и с параметром соли?
Спасибо заранее, Тим Визе
Позвольте мне объяснить вам разницу между кодированием, хешированием и шифрованием.
Тем не менее, я не вижу большого смысла в шифровании данных в вашей базе данных. Если кто-то видит ваш исходный код PHP и базу данных, он может легко прочитать ключ и дешифровать данные. Он может только помочь вам, если кто-то украдет необработанную базу данных и до сих пор не имеет доступа к вашему исходному коду, но это очень редко, и веб-программисты обычно не делают этого.