Я делаю сайт с PHP, и мне нужно хранить личную информацию о пользователе (имя, адрес, номер телефона) в базе данных MySQL. Информация будет показана пользователю.С каким ключом должна быть включена личная информация?
Я планирую использовать шифрование AES для шифрования данных. Использование пароля пользователя кажется недружественным пользователем, поскольку пользователю нужно будет вводить пароль для каждого раза, когда данные должны отображаться.
Я хотел использовать строку, хранящуюся в сеансе, где добавляются идентификатор пользователя, хешированный пароль и имя пользователя, а затем хэшируются. Это безопасный ключ шифрования для использования?
Я вижу. Но что, если ключ «hash» ($ unhashed_password. $ Id. $ Username) '? Сохраняется ли ключ? Я бы предпочел использовать это, потому что его легко получить после входа пользователя в систему, но для злоумышленника это невозможно. Неиспользуемый пароль не сохраняется в базе данных, поэтому я предполагаю, что это безопасно. – FalconC
@FalconC Этот ключ также небезопасен. Во-первых, хеширование не является хорошей функцией деривации ключей. Это простой способ подключения автономных атак, пытающихся угадать пароль. Вам нужна функция деривации ключа, которую сложно вычислить с вычислительной точки зрения. Если бы для большинства хеш-функций был задан хэш пароля, я могу вычислить этот хэш, который вы упомянули. Это называется атакой расширения длины. http://en.wikipedia.org/wiki/Length_extension_attack – imichaelmiers
Я посмотрю. Спасибо. – FalconC