Шифрование базы данных SQLite с помощью SQLCipher

Просмотров: 5846Комментарии: 3
ПрограммированиеDelphi
Шифрование базы данных SQLite с помощью SQLCipher

SQLite — легковесная встраиваемая реляционная база данных. SQLite в стандартном варианте хранит данные в файле в не зашифрованном виде, и сегодня мы исправим эту ситуацию. В этом нам поможет расширение SQLite под название SQLCipher. SQLCipher - это кроссплатформенное расширение SQLite. Оно шифрует страницы нашей базы данных перед тем как записать их, и расшифровывает при чтении.

Цель: Собрать из исходников SQLCipher библиотеку SQLite с AES-256 шифрованием под Windows.

1) Во первых нам понадобится кросс-компилятор на основе - MinGW + MSYS.

Скачать можно с официального сайта www.mingw.org, на момент написания статьи была доступна версия от 2 августа 2011. Дистрибутив под названием mingw-get-inst-20110802.exe.

Скачиваем и устанавливаем в папку D:\MinGW\. При установке необходимо установить галочку на пункте "MiniGW Developer Toolkit".

2) Библиотека шифрования из OpenSSL. Через поиск гугл, сразу нашел установщик под название Win32OpenSSL-0_9_8m.exe. При установке указываем, что хотим установить библиотеки в туже папку, в подпапку /bin . Устанавливаем в папку D:\OpenSSL\.

3) Скачиваем библиотеку инструментов Tcl/Tk. Я нашел версию 8.4.1-1 (сборка для MinGW). Файл называется tcltk-8.4.1-1.exe. При установке указываем путь к MiniGW, в нашем случае D:\MinGW\.

4) Находим файл D:\MinGW\bin\tclsh84.exe и переименовываем в tclsh.exe.

5) Скачиваем SQLCipher с официального сайта sqlcipher.net. Нашел у них последнюю бета-версию 1.1.8-19. После скачивания архива, разархивируем его в папку D:\SqlCipher\.

6) Запускаем MSYS, он находится по адресу D:\MinGW\msys\1.0\msys.bat.

7) Выполняем следующие команды в MSYS:

а) переход в папку SqlCipher

cd /d/SqlCipher/

б) настраиваем библиотеку

./configure --disable-tcl --disable-amalgamation CFLAGS="-DSQLITE_HAS_CODEC -I/d/OpenSSL/include /d/OpenSSL/libeay32.dll -L/d/OpenSSL/lib/MinGW" LDFLAGS="-leay32"

в) компилируем

make

г) создаем нашу dll

make dll

Теперь при создании проекта, нам понадобятся две библиотеки dll.

sqlite3.dll - находится в папке D:\SqlCipher\sqlite3.dll

libeay32.dll - находится в папке D:\OpenSSL\libeay32.dll

Теперь при создании проекта, например в Delphi, эти два файла нужно будет скопировать в папку с проектом. Как эти библиотеки использовать мы рассмотрим в следующей статье.

Скачать полученную библиотеку можно по ссылке ниже.


Скачать библиотеку

Комментариев: 3 RSS

1 Егор 16-10-2011 20:20

Автор статьи, будет ли обещанная вторая часть?

как раз занят вопросом шифрования БД sqlite. Не могу найти адекватного способа использования типичной обертки для sqlite в delphi (sqlite wrapper, например) и функций шифрования. с нетерпением жду ответа

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

     

  

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

(обязательно)