mysql: шифрование и дешифрование данных - PullRequest
4 голосов
/ 01 апреля 2010

Предоставляет ли mysql механизм для хранения и извлечения зашифрованных данных? Я не имею в виду пароли, я имею в виду реальные строки.

Я хотел бы зашифровать строку, сохранить в mysql, а затем получить расшифрованную строку позднее.

Итак, я знаю, что есть функции AES_Encrypt и decrypt. Но они просят ключ. (что хорошо), но мне интересно, если вы вызываете эти функции и используете свой пароль пользователя в качестве ключа. Или что-то еще, что очень просто.

Кроме того, есть ли простая оболочка для функций AES_Encrypt & decrypt в Rails? Или вам нужно построить запрос вручную?

Ответы [ 3 ]

5 голосов
/ 01 апреля 2010

Вы можете просто объединить функции шифрования:

select aes_encrypt('MyData',Password('MyPassword'))

и обратно ..

select Aes_decrypt( aes_encrypt('MyData',Password('MyPassword'))
     , Password('MyPassword'))
3 голосов
/ 01 апреля 2010

Если я вас понимаю, то все, что вам нужно, это метод генерации ключа AES из вашего (или другого) пароля пользователя?

Разве вы не должны спрашивать: "Есть ли простой способ для генерации AES-ключа из строки 5-20 символов?"

Как вы отметили, другие инструменты уже существуют в mysql: http://dev.mysql.com/doc/refman/5.0/en/encryption-functions.html

Также вы можете найти некоторые идеи в этой публикации здесь, на SO.

0 голосов
/ 22 июня 2017
$pass = $_POST['pass'];
$sql = "INSERT INTO testperson (name,password,contact) VALUES('$name',md5('$pass'),$cont)";

Просто напишите md5 перед вводом, который вы хотите зашифровать, как пароль.

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