最近由於專案需要,要對伺服器端產生的sqlite進行加密.伺服器後台用的是php寫的,作業系統為CentOS.開源的sqlite3預留了資料庫加密介面,但是沒有實現.於是在網路上找到了SQLCipher,它對sqlite3未實現的加密功能進行了實現,並且可以通過重新編譯PHP的sqlite3擴展,從而支持sqlite數據庫加密.
具體操作,可參考官網的步驟進行,地址:https: //www.zetetic.net/sqlcipher/sqlcipher-for-php/
官網的操作,系統是用的Ubuntu,在這裡可以將相應命令轉換成CentOS下用的即可.參照官網上的操作步驟,便可以編譯成功,
編譯成功後,會產生sqlite3.so,直接替換掉之前伺服器php擴充中得sqlite3.so即可(替換前最好做個備份).替換完成後,重啟apache伺服器,
下來進行測試,測試程式碼:
6385,487853個密碼583859834$37555353($375/test.com表示如果有就開啟,沒有就建立.具體的資訊可參考來源檔案中sqlite3.c進行相關檢視
$db=new Sqlite3("test.sqlite",6,"12345678");
$db->exec("create table mytest (name varchar(200) )");
$db->exec("insert
into mytest (name) values ('aaaa')");
$result
= $db->query('SELECT * FROM mytest');
?> 如果可以打印出來結果,說明sqlite3已經重新編譯成功.在此基本上算是成功了,但是仍需要檢驗一下,生成的數據庫是否已經加密.可以將生成的test.sqlite用之前自己的一些工具打開試試,一般都會提示錯誤.這時候說明已經成功給sqlite加密.
順便說一下,官網上也有對android和IOS的支持操作步驟,可以在官網上查看的到.
版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。
以上就介紹了CentOS下php透過SQLCipher編譯sqlite3支援資料庫加密,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。