Шифрование содержимого базы данных - PullRequest
0 голосов
/ 28 января 2011

Если я не ошибаюсь, когда вы хотите зашифровать контент в базе данных, вы будете использовать md5. Я использую это прямо сейчас для паролей. Но теперь я хочу добавить шифрование всей личной информации и т. Д. Для корпоративных клиентов. Ниже приведены мои вопросы:

  1. Если я все md5, php будет отображать все как обычно, как без md5?

  2. Когда я разрешаю редактирование контента, мне нужно будет отображать информацию без md5, а затем добавить md5 после отправки, правильно?

  3. Если кто-то получит доступ к базе данных, он увидит только md5. Но если они загрузят его, а затем удалят md5, они не увидят всю информацию?

Как вы можете сказать, я любитель под давлением. Пожалуйста, поправьте меня, если я ошибаюсь, думая о MD5. Если так, как я могу зашифровать базы данных, помня, что информация будет редактироваться пользователями в любое время.

Спасибо.

Ответы [ 5 ]

9 голосов
/ 28 января 2011

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

Если вы собираетесь выполнять шифрование данных базы данных на уровне приложений (вместо того, чтобы полагаться на какие-либо специфичные для СУБД функции шифрования), вам всегда придется шифровать данные (в коде), прежде чем поместить их в базу данных и расшифровывать данные (в коде) всякий раз, когда вы берете его из базы данных.Для подобных систем обычно используется алгоритм шифрования с симметричным ключом, такой как AES.

3 голосов
/ 28 января 2011

MD5 - это функция хеширования!Это односторонняя функция.Вы не можете декодировать хеш MD5!

Если вы кодируете свой контент с помощью MD5, вы потеряете данные !!!Вместо этого используйте 3DES, BLOWFISH или другие методы шифрования!

Запись зависит от БД в БД.Более или менее каждый БД имеет модуль для использования (и оплаты)

2 голосов
/ 28 января 2011

Насколько мне известно, в настоящее время известно, что MD5 на самом деле не является безопасной функцией хеширования.В Интернете есть места, предлагающие обратные услуги MD5, где они собирают огромную базу данных строк с их эквивалентом MD5.Попробуйте использовать что-то вроде SHA-512 и используйте методы, такие как итеративное хеширование, чтобы сделать его более безопасным.В PHP есть библиотека crypt (), которую вы можете оформить или использовать шифрование базы данных SQLite.

2 голосов
/ 28 января 2011

Если я все md5, php будет отображать все как обычно, как без md5?

Нет.Все будет дайджестом md5.Исходные данные будет (почти) невозможно восстановить из дайджеста.

Когда я разрешу редактирование контента, мне придется отображать информацию без md5, а затем добавить md5 после отправки, исправить?

Поскольку дайджест md5 нельзя (легко) декодировать в исходные данные, вам придется где-то хранить исходную информацию.

Если кто-то получит доступ кбазу, они увидят только md5.Но если они загрузят его и затем удалят md5, они не увидят всю информацию?

Нет.Дайджест md5 нельзя (легко) отменить, чтобы восстановить любую исходную информацию.

1 голос
/ 28 января 2011

MD5 - функция одностороннего хеширования.Это не будет расшифровано.ПРОСТО ЗАПИСАНО.

...