рдХреНрдпреВрдЯреА рдореЗрдВ SQLite рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди

SQLite рдореЗрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╛рдзрд╛рди рдкрд╛рдП рдЧрдП:


рдорд╛рдирд╛ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ, рдПрд╕рдИрдИ, SQLiteCrypt рдФрд░ SQLiteCrypto рдПрдХ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред SQLCipher рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП libcrypto рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдкреНрд░рд╕реНрддреБрдд рд╕реВрдЪреА рд╕реЗ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдорд╛рдзрд╛рди, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, QtCipherSqlitePlugin рд╣реИ ред
рдкреНрд▓рдЧрдЗрди рдордХреНрдЦреА рдкрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреНрдпреВрдЯреА рдПрдкреАрдЖрдИ рдореЗрдВ рдПрдХреАрдХреГрдд рд╣реИред

рдкреНрд▓рдЧрдЗрди SQLite рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде-рд╕рд╛рде wxWitegets рд╕реЗ wxSQLite3 рдФрд░ LGPL 2.1 рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЙрдиреНрдирдд рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╕реНрдЯреИрдВрдбрд░реНрдб (AES) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред

рдЕрд╕реЗрдВрдмрд▓реА рдФрд░ рдкреНрд▓рдЧрдЗрди рдХреА рд╕реНрдерд╛рдкрдирд╛


1. рд╕реЛрд░реНрд╕ рдХреЛрдб QtCipherSqlitePlugin рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

git clone github.com/devbean/QtCipherSqlitePlugin.git

2. рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╕реНрд░реЛрдд рдХреНрдпреВрдЯреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдореЗрдВ - 4.8.6)

wget download.qt.io/archive/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz

3. рдкрд░рд┐рдгрд╛рдореА рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдирдкреИрдХ рдХрд░реЗрдВ

tar zxvf qt-everywhere-opensource-src-4.8.6.tar.gz

4. QtCreator рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЦреЛрд▓реЗрдВ

QtCipherSqlitePlugin \ sqlitecipher \ sqlitecipher.pro

5. рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ Qt рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ

QtCipherSqlitePlugin \ sqlitecipher \ qt_p.pri рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ
# рдХреНрдпреВрдЯреА 4
рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ (qtmaMAJOR_VERSION, 4): INCLUDEPATH + = <Qt4_Path> / src / sql / рдХрд░реНрдиреЗрд▓
# рдХреНрдпреВрдЯреА 5
рдмреГрд╣рддреНрддрд░ (QT_MAJOR_VERSION, 4): INCLUDEPATH + = <Qt5_Path> / Src / qtbase / src / sql / рдХрд░реНрдиреЗрд▓

Qt рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдкрде рд╕реЗрдЯ рдХрд░реЗрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, Qt4 рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рдирд┐рдХрд▓реА
/home/developer/Sources/qt-everywhere-opensource-src-4.8.6/src/sql/kernel


6. рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрдирд╛

7. рдкреНрд▓рдЧрдЗрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ Qt рдкреНрд▓рдЧрдЗрди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЙрдкреА рдХрд░реЗрдВ

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ / usr / lib / x86_64-linux-gnu / qt4 / plugins / sqctors

рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


1. рдкреНрд░рджрд░реНрд╢рди рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ

QtCipherSqlitePlugin / test / test.pro рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рдХреЗ, рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ SQLITECIPHER рдбреЗрдЯрд╛рдмреЗрд╕ рдбреНрд░рд╛рдЗрд╡рд░ рдЙрдкрд▓рдмреНрдз рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗред
("QSQLITE", "SQLITECIPHER")
1: "рдПрдПрдП"
2: "рдмреАрдмреАрдмреА"
3: "рд╕реАрд╕реАрд╕реА"
3: "DDD"
4: "рдИрдИрдИ"
5: "FFF"
6: "рдЬреАрдЬреАрдЬреА"

2. рдПрдХ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдПрдБ

рдкрд░реАрдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдмрдирд╛рдИ рдЧрдИ рдлрд╝рд╛рдЗрд▓ test_c.db рдХреЛ рд╣рдЯрд╛ рджреЗрдВред
рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ test.pro рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ main.cpp рдХреЛрдб рдореЗрдВ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░реЗрдВред
dbconn.setPassword("password");
рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рдЗрд╕реЗ рдмрдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЧрд▓рдд рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдХреЛрдИ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред

рдЕрдирд╛рд░рдХреНрд╖рд┐рдд рдореБрджреНрджрд╛


рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдирд╛рдП рдЧрдП рдФрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рдХреИрд╕реЗ рдмрджрд▓реЗрдВред

Source: https://habr.com/ru/post/In216739/


All Articles