Topic: Шифрование данных

Дмитрий, здравствуйте!
Есть ли какие-либо варианты шифрования информации в базе данных (в частности MySQL), реализуемые в вашем продукте. Или быть может скрипт , позволяющий шифровать и дешифровывать текст в зависимости от потребностей, исключая возможность хеширования MD5 ?

Re: Шифрование данных

Приветствую,


Здесь можете найти некоторые функции для шифрования данных в MySQL
http://sevidi.ru/php/phppage47.php


но для защиты данных в целом, как правило необходимо обезопасить сам сервер, на котором установлена СУБД MySQL

Dmitry.

3 (edited by Igor 2016-05-24 22:48:51)

Re: Шифрование данных

DriveSoft wrote:

Приветствую,


Здесь можете найти некоторые функции для шифрования данных в MySQL
http://sevidi.ru/php/phppage47.php


но для защиты данных в целом, как правило необходимо обезопасить сам сервер, на котором установлена СУБД MySQL

Дмитрий, как раз недавно читал эту статью smile. Попробую реализовать вашу подсказку. Но дело в том что простым перехватчиком пакетов данных к базе MySQL, в результате перехвата можно узнать и сам скрипт запроса, и я так полагаю и сам секретный ключ для дешифровки данных. Может ошибаюсь.
Но эксперимент перехвата данных, показывал скрипт и данные выводимые в результате этого запроса. Sql запрос производился посредством нажатия кнопки на "форме".

Re: Шифрование данных

И попутный вопрос:
Реализована ли поддержка данных функций AES_DECRYPT  и  AES_ENCRYPT при запросе к базе MySQL, в вашей программе?

Re: Шифрование данных

Igor wrote:

И попутный вопрос:
Реализована ли поддержка данных функций AES_DECRYPT  и  AES_ENCRYPT при запросе к базе MySQL, в вашей программе?

Это просто команды, которые вы можете использовать в SQL запросах, специальная их поддержка не требуется.

Dmitry.

Re: Шифрование данных

Дмитрий, извините за назойливость smile
Не могли бы вы подсказать пример скрипта с командами AES_ENCRYPT  и  AES_DECRYPT .

Re: Шифрование данных

Igor wrote:

Дмитрий, извините за назойливость smile
Не могли бы вы подсказать пример скрипта с командами AES_ENCRYPT  и  AES_DECRYPT .

шифрование

INSERT INTO testtable (fieldname) VALUE(AES_ENCRYPT('mytext','passw'));  

расшифровка

SELECT AES_DECRYPT(fieldname,'passw')  FROM testtable;  
Dmitry.

Re: Шифрование данных

Дмитрий, спасибо за помощь!
Принцип работы скриптов понятен, но, как применить данные скрипты я так и не понял. Не найдется ли у вас примерчика ))

Re: Шифрование данных

Igor wrote:

Дмитрий, спасибо за помощь!
Принцип работы скриптов понятен, но, как применить данные скрипты я так и не понял. Не найдется ли у вас примерчика ))

Что именно необходимо? применить как?

Dmitry.

10 (edited by Igor 2016-05-26 21:37:28)

Re: Шифрование данных

Дмитрий, добрый день

DriveSoft wrote:

Что именно необходимо? применить как?

При таком запросе при нажатии на кнопку

procedure Form2_Button3_OnClick (Sender: string; var Cancel: boolean);
begin
    SQLExecute('INSERT INTO Sotr (Name) VALUES(AES_ENCRYPT('+Form2.Edit1.sqlValue+',passw))');
end;

Данные успешно вносятся в таблицу, без всякой шифровки

И при обычном запросе (без кодового слова) из базы данные успешно передаются в TableGrid без шифровки

Сам запрос по кнопке для вывода в TableGrid

select
Sotr.Name,
Sotr.Fameli,
Sotr.Password,
Sotr.id

from Sotr

Дмитрий, где ошибка ? Что я делаю не так ?

Re: Шифрование данных

Доброе утро, Дмитрий !
посмотрите пожалуйста верхний пост!

Re: Шифрование данных

Igor
Как оказалось есть ньюанс, при использовании функций шифрования. Текст необходимо хранить в полях с типом BLOB, что соотвествует типу ФАЙЛ в MVD, сделал для вас пример:

Post's attachments

Attachment icon MySQL Encrypt.zip 3.83 kb, 445 downloads since 2016-05-27 

Dmitry.

13 (edited by Igor 2016-05-28 14:01:19)

Re: Шифрование данных

Дмитрий, запустил ваш пример . Кодирует все замечательно, но вот с декодером какая-то проблемка , выводит надпись но не такую , подозреваю что проблема в кодировке Юникода на сервере MySQL, попытался выставить в таблице сравнение с нужным Юникодом (utf-8 general ci), но не срабатывает.
На английской раскладке кодировка и декодировка работает нормально, но только не с русской раскладкой .

Re: Шифрование данных

Igor wrote:

Дмитрий, запустил ваш пример . Кодирует все замечательно, но вот с декодером какая-то проблемка , выводит надпись но не такую , подозреваю что проблема в кодировке Юникода на сервере MySQL, попытался выставить в таблице сравнение с нужным Юникодом (utf-8 general ci), но не срабатывает.
На английской раскладке кодировка и декодировка работает нормально, но только не с русской раскладкой .

Измените выч. поле calc_decrypt на

CONVERT(AES_DECRYPT(description,'passw') using utf8)
Dmitry.

Re: Шифрование данных

Дмитрий, как всегда, спасибо за помощь !!!