наши рабочие классы для работы с бд

Статус
В этой теме нельзя размещать новые ответы.
а как ты себе предславлаешь передачу запроса в СуБД вида
не думаю что она (СуБД) догадается что ты там посылаешь...
как метод еще
настройка MySQL+SSL
если же в самой субд в шифроманном виде хранить то тут все просто ...
возьми тот же блоуфиш, создай ключ и все поля при выходе и выходе обрабатывай
и вот еще почитай
Функции шифрования
Функции, описанные в данном разделе, шифруют и дешифруют значения данных. Если вы хотите сохранять результаты функции шифрования, которые могут иметь произвольные байтовые значения, применяйте столбцы типа BLOB вместо CHAR или VARCHAR, чтобы избежать потенциальных проблем с удалением завершающих пробелов, которые изменяют значения данных.
AES_ENCRYPT{строка,строка_ключа)
AESJ3ECRYPT {зажфроваиная_строка, строка__ключа)
Эти функции позволяют выполнять шифрование и дешифрацию данных с использованием официального алгоритма AES (Advanced Encryption Standard), ранее известного как "Rijndael". Применяется кодирование с 128-разрядным ключом, но можно расширить его до 256 разрядов, должным образом изменив исходные тексты. Мы выбрали длину ключа 128, поскольку он работает намного быстрее и при этом обеспечивает приемлемый уровень безопасности.
Входные аргументы могут иметь любую длину. Если любой из них равен NULL, результатом функции также будет NULL.
Поскольку AES — алгоритм блочного типа, дополнение применяется для строк с нечетным количеством символов, и поэтому длина результирующей строки может быть рассчитана как 16* (trunc (длияа_ строки/16)+1).
Если функция aes_DECRYPT() обнаруживает неверные данные или неправильное дополнение, она возвращает NULL. Однако существует вероятность, что AES_DECRYPT() вернет значение, не равное NULL (возможно, "мусор"), если входные данные или ключ не верны.
Вы можете использовать AES-функции для сохранения данных в зашифрованной форме, модифицировав существующие запросы:
INSERT INTO t VALUES (1,AES_ENCRYPT( 'text', 'password')) ;
Можно обеспечить даже более высокий уровень безопасности, если не передавать значение ключа для каждого запроса, а сохранять его в переменной сервера во время подключения, например:
SELECT @password:='my password1;
INSERT INTO t VALUES (1,AES_ENCRYPT('text',Qpassword));
Функции AESJENCRYPT О и AESJDECRYPT () были добавлены в MySQL 4.0.2 и могут рассматриваться как наиболее криптографически безопасные функции, доступные в MySQL на текущий момент.
DECODE {зашифрованная_строка, строка_пароля)
Расшифровывает строку зашифрованная_строка, используя значение строка_пароля в качестве пароля. Аргумент зашифрованная_строка должен быть строкой, ранее возвращенной функцией ENCODE ().
ENCODE {строка, строка_пароля)
Шифрует строку строка, используя значение строка_пароля в качестве пароля. Для расшифровки результата применяется функция DECODE(). Результатом является бинарная строка той же длины, что и строка. Если нужно сохранить ее в столбце, применяйте тип BLOB.
DES_DECRYPT {зашфрованная_строка[, строка _ключа])
Расшифровывает строку з а шифров а нная__ строка, зашифрованную с помощью DESENCRYPT (). В случае ошибки возвращает NULL. Следует отметить, что эта функция работает, только если MySQL настроен на поддержку SSL. Если не указан аргумент строка_ключа, DES_deCRYPT () проверяет первый байт зашифрованной строки для определения номера DES-ключа, использованного при шифровании исходной строки, а затем читает ключ из файла DES-ключей для расшифровки сообщения. Чтобы это работало, пользователь должен иметь привилегию SUPER. Файл ключей может быть указан с помощью опции сервера —des-key-f ile. Если вы передаете этой функции аргумент строка__ключа, он используется в качестве ключа при расшифровке сообщения.
Если аргумент зашифрованная__строка не выглядит как зашифрованная строка, MySQL вернет строку зашифрованная_строка без изменений. Функция DESDECRYPT () была добавлена в MySQL 4.0.1.
DES_ENCRYPT (строка[, {номер_ключа\ строка_ключа) ])
Шифрует строку с помощью заданного ключа, используя тройной DES-алгоритм. В случае ошибки возвращает NULL.
Следует отметить, что эта функция работает, только если MySQL настроен на поддержку SSL. Ключ шифрования выбирается на базе второго аргумента DES_ENCRYPT (), если таковой указан:
Имя файла ключей указывается в опции сервера ~des-key-f ile.
Возвращаемое значение является бинарной строкой, в которой первый символ - это CHAR (128| номер_ключа). 128 добавлено для того, чтобы упростить распознавание ключа шифрования. Если применяется строковый ключ, номер_ключа будет равен 127. Длина строки результата рассчитывается как новая_длина = оригинальная__длина+ (8 - {оригинальная_длина % 8)) +1. Каждая строка в файле DES-ключей имеет следующий формат: номер_ключа строка_ключа__о\ез.
Каждый номер_ключа должен быть числом в диапазоне от 0 до 9. Строки в файле могут следовать в любом порядке. строка_ключа_с!е5 — это строка, которая будет использоваться для шифрования сообщения. Между номером и ключом должен быть, по меньшей мере, один пробел. Первый ключ является ключом по умолчанию, который применяется в случае, если не указан аргумент строка ключа в функции DES_ENCRYPT().
Можно указать MySQL на необходимость чтения новых значений ключа из файла ключей с помощью оператора FLUSH DES_KEY_FILE. Это требует наличия привилегии RELOAD.
Одна выгода от наличия набора ключей по умолчанию состоит в том, что это дает возможность приложениям проверить наличие зашифрованных значений столбцов, без необходимости предоставления конечному пользователю прав непосредственного доступа к ключам.
mysql> SELECT customer_address FROM customer_table WHERE
-> crypted _credit__card = DES_ENCRYPT('credit _card_number');
DES_ENCRYPT () была добавлена в MySQL 4.0.1.
ENCRYPT (строка [, нач])
Шифрует строку строка, используя системный вызов Unix crypt (). Аргумент нач должен быть строкой их двух символов. (Начиная с версии MySQL 3.22.16, нач может быть длиннее 2 символов.)
raysql> SELECT ENCRYPT('hello'); -> 'VxuFAJXVARROc'
ENCRYPT () игнорирует все, кроме первых восьми символов аргумента строка, по крайней мере, в некоторых системах. Это поведение определяется реализацией лежащего в основе системного вызова crypt ().
Если функция crypt () не доступна в вашей системе, ENCRYPT () всегда возвращает NULL. По этой причине мы рекомендуем применять вместо этой функции MD5() или SHA1 (), поскольку эти две функции представлены на всех платформах.
MD5{строка)
Вычисляет 128-разрядную контрольную сумму MD5 для аргумента строка. Значение возвращается в виде 32-разрядной шестнадцатеричной строки или же NULL, если аргумент равен NULL. Возвращаемое значение может быть использовано, например, в качестве хэш-ключа.
mysql> SELECT MD5(' testing1);
-> 'ae2blfca515949e5d54fb22b8ed95575f
Дополнительные сведения можно найти в документе "RSA Data Security, Inc. MD5 Message-Digest Algorithm" ("Компания RSA Data Security, Inc. Алгоритм вычисления дайджеста сообщения"). Функция MD5 () появилась в MySQL 3.23.2.
OLD_PASSWORD {строка)
Функция OLD_PASSWORD() стала доступной, начиная с MySQL 4.1, когда была изменена реализация password() для повышения безопасности. OLD_PASSWORD () воз вращает такое же значение, какое возвращала старая реализация (до версии 4.1) функции PASSWORD ().
a PASSWORD{строка)
Вычисляет и возвращает строку пароля по значению пароля строка, заданному простым текстом, или же NULL, если аргумент равен NULL. Эта функция применяется для шифрования паролей, сохраняемых в столбце Password таблицы привилегий user.
mysql> SELECT PASSWORD('badpwd'); -> '7f84554057dd964bf
Шифрование функцией PASSWORD () является однонаправленным (то есть необратимым).
На заметку!
Функция PASSWORD () используется системой аутентификации сервера MySQL, которая не долж*на быть задействованной в ваших собственных приложениях. Для этой цели вместо нее приме*няйте функции MD5 () и SHA1 (). Кроме того, в документе RFC2195 можно найти дополнительную информацию по работе с паролями и аутентификацией прикладных приложений.
SHA1{строка) SHA(строка)
Вычисляет 160-разрядную контрольную сумму SHA1 для строки, как описано в документе RFC3174 ("Secure Hash Algorithm" - "Защищенный алгоритм хэширования"). Возвращаемое значение - шестнадцатеричная строка длиной в 40 цифр или NULL, если аргумент равен NULL. Одним из возможных применений этой функции является получение хэш-ключа. Вы также можете использовать ее как безопасную криптографическую функцию для сохранения паролей.
mysql> SELECT SHA1('abc');
-> fa9993e364706816aba3e25717850c26c9cd0d89d'
Функция SHA () была добавлена в MySQL 4.0.2 и может рассматриваться как более безопасный эквивалент с точки зрения криптографии, нежели MD5 (). SHA () является синонимом для SHA1 ( ).
 
а как ты себе предславлаешь передачу запроса в СуБД вида
не думаю что она (СуБД) догадается что ты там посылаешь...
как метод еще
настройка MySQL+SSL
если же в самой субд в шифроманном виде хранить то тут все просто ...
возьми тот же блоуфиш, создай ключ и все поля при выходе и выходе обрабатывай
и вот еще почитай


мой вопрос был про то, есть ли у кого то уже готовый класс для работы с шифрование базы. просто чтобы не тратить время на то, что уже где то реализовано.
 
а класс такой не встречал, тк таблицы у каждого индивидуальны, и не каждое поле нужно шифровать так что только самому писать... а набросать класс могу, если нужно для MySQLi
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху