Intereting Posts
Как отправить таблицу / форму с группировкой / идентификатором для последующего получения Как настроить и запустить Tesseract OCR для PHP (opensource)? Как установить глобальные переменные среды для PHP PHP Looping через рекурсивный массив Получить всю дату начала недели и дату окончания в пределах диапазона дат в php Возвращение категорий магазинов с помощью eBay API с использованием PHP PHP и jQuery индикатор выполнения при разборе Javascript «unescape» в PHP Кэширование HTTP-ответов, когда они динамически создаются PHP Загрузка файла Jquery всегда завершается неудачей, когда загрузка файла отменена Шифрование / дешифрование файла с помощью Mcrypt Как я могу использовать функцию preg_replace PHP для преобразования кодовых точек Unicode в реальные символы / объекты HTML? Как получить доступ к атрибуту объекта, который начинается с числа? PHP Dynamic Include Help на Index.php? Символ Unicode в строке PHP

Защита пользовательских данных с помощью кодирования и декодирования?

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

Я хотел бы иметь функцию, что соль может использоваться в процессе en- и decoding. Это означает, что у меня есть случайная строка, хранящаяся где-то в веб-приложении, которая используется как «семя» или «соль» для этого процесса, поэтому результат будет другим, если эта случайная строка отличается, это затрудняет процесс декодирования хакеры (например) ворвались в базу данных и украли данные.

Я видел функцию в PHP, называемую base64_encode() и base64_decode() , эти функции могут очень легко декодировать данные и декодировать их. Проблема с этими функциями заключается в том, что нет параметра «salt», и я не думаю, что это очень хорошо, как защита. Есть ли функция, которая делает что-то аналогичное с большей защитой с функцией en- и decode и с параметром соли?

Спасибо заранее, Тим Визе

Позвольте мне объяснить вам разницу между кодированием, хешированием и шифрованием.

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

Тем не менее, я не вижу большого смысла в шифровании данных в вашей базе данных. Если кто-то видит ваш исходный код PHP и базу данных, он может легко прочитать ключ и дешифровать данные. Он может только помочь вам, если кто-то украдет необработанную базу данных и до сих пор не имеет доступа к вашему исходному коду, но это очень редко, и веб-программисты обычно не делают этого.