目錄
- EncryptSqlite3
- 實作原理
- 使用方法
- 不足之處
GitHub地址
EncryptSqlite3
加密sqlite3資料庫,產生的資料庫檔案別人打不開,
實作原理
- 在寫入檔案前對每個位元組加密,這樣存入檔案的就是加密后的資料,
- 將從檔案讀取的資料每個位元組都解密,這樣就得到正確資料用于處理,
- 可以搜索c/sqlite3.c和go/sqlite3-binding.c這兩個原始碼中的(ENCRYPT_SQLITE3)宏,分析代碼就行,
使用方法
在./c/和./golang/目錄中都有build.bat和build.sh
在windows環境使用cmd進入目錄執行.\build.bat即可
在Linux環境進入目錄后執行./build.sh即可
可以使用編譯后的官方控制臺程式./c/sqlite3 t.db來通過命令列讀寫sqlite3檔案
不足之處
由于寫入和讀取位置由sqlite3控制,因此加解密都只能為針對單位元組,因為大多數對稱加密都需要從頭開始加解密,像AES有些模式后面加密的資料依賴前面加密的結果,所以我在本專案中實作的僅僅是將每個位元組和密鑰進行異或,這是最簡單的單位元組加解密,當然如果別人知道這個這個規則,最多嘗試255次就能破解,當然我有一些自己的想法,比如做一些亂數混淆單位元組資料,但需要設計可靠的加解密邏輯,有興趣的可以自己嘗試吧,

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/106706.html
標籤:其他
上一篇:MySQL主從不生效且無錯誤
