Intereting Posts
jQuery Mobile: как правильно отправить данные формы Преобразовать координаты латинского / длинного в пиксель X и Y WordPress – правильная ссылка php для изображений в медиа-библиотеке PHP Regex для определения относительного или абсолютного пути Как получить текущее местоположение пользователя с помощью Google Geocode API и PHP Заполнить список раскрывающихся списков в зависимости от другого варианта выпадающего списка, используя Ajax Отправить действие кнопки в зависимости от того, совпадает ли поле с другой формой Поддерживать связь между двумя серверами php, websocket и socket.io Отправка почты нескольким получателям с помощью sendgrid и codeigniter Ответ XML содержит символы «2000» и «20a0» Задайте переменную в классе, который будет использоваться для нескольких функций / методов Выбор класса css с помощью xpath Как запустить PHP-скрипт в запланированное время SilverStripe 3 – Опции для <% loop%> Массив с ассоциативным массивом – удаление дубликатов

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

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

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

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

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

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

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

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