Лучший способ шифрования текста для хранения в базе данных MySQL - PullRequest
6 голосов
/ 01 апреля 2011

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

Спасибо

Ответы [ 4 ]

2 голосов
/ 01 апреля 2011

То, что вы ищете, это MCrypt .Также, если вы хотите, чтобы данные были действительно безопасными, вам нужно будет использовать HTTPS для транспорта, так как после того, как PHP-скрипт расшифровал зашифрованный текст (когда пользователь обращается к тексту), простой текст отправляется через NIC сервера,Таким образом, хитрый администратор или злоумышленник может просто прослушать трафик на интерфейсе и зарегистрировать трафик.

1 голос
/ 01 апреля 2011

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

1 голос
/ 01 апреля 2011

AES_ENCRYPT и AES_DECRYPT - это простые способы шифрования / дешифрования строк без самостоятельного написания кода, доступные в MySql 5 и выше.

Имейте в виду, что вывод AES_ENCRYPT является двоичной строкой, которую необходимо хранить в столбцах двоичного типа данных (наиболее вероятно, соответствующий BLOB) вместо текстовых типов, таких как TEXT или VARCHAR, который вы обычно используете для текстовых данных.

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

0 голосов
/ 01 апреля 2011
  1. Используйте соединение для сохранения (https), чтобы ваш админ не может получить пароль из журналов.
  2. Использование MCript для шифрования расшифровки данные с паролем пользователя.
  3. Расшифруйте данные у пользователей пароль.

Однако есть один БОЛЬШОЙ недостаток:

Вам потребуется хранить пароль пользователя в открытом тексте в сеансе, поэтому вы ДОЛЖНЫ позаботиться о том, чтобы данные сеанса не сохранялись в журналах, базе данных и т. Д. ...

Если у вашего администратора есть доступ к php-коду, то это займет считанные секунды.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...