日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQLite加解密

發布時間:2024/7/23 数据库 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQLite加解密 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0x00 SQLite概述


SQLite是一個輕量級、跨平臺的,開源的數據庫引擎,它在讀寫效率,消耗總量、延遲時間和整體簡單性上具有的優越性,使其成為移動平臺數據庫的最佳解決方案。

然而免費版的SQLite有一個致命缺點:不支持加密。這就導致存儲在SQLite中的數據可以被任何人用任何文本編輯器查看到。



0x01 SQLite加密工具


SQLite Encryption Extension(SEE)

事實上SQLite有加解密接口,只是免費版本沒有實現而已。而SQLite Encryption Extension(SEE) 是SQLite的加密版本,提供一下加密方式:

RC4

AES-128 in OFB mode

AES-128 in CCM mode

AES-256 in OFB mode

SQLite Encryption Extension(SEE)版本是收費的。


SQLiteEncrypt

使用AES加密,其原理是實現了開源免費版SQLite沒有實現的加密相關接口。

SQLiteEncrypt是收費的。


SQLiteCrypt

使用256-bitAES加密,其原理和SQLiteEncrypt一樣,都是實現了SQLite的加密相關接口。

SQLiteCrypt也是收費的。


SQLCipher

首先需要說明的是,SQLCipher是完全開源的,代碼托管在github上。

SQLCipther使用256-bit AES加密,由于其基于免費版的SQLite,主要的加密接口和SQLite是相同的,但也增加了一些自己的接口,詳情見這里。


SQLCipher分為收費版本和免費版本,官網介紹的區別為:

只是集成起來更簡單,不用再添加openssl依賴庫,而且編譯速度更快,從功能來說沒有任何區別。



0x03??SQLite加密解密實現


這里介紹得非常詳細。



0x04 SQLite DB文件解密實現


看上部分,加解密算法能了解到,DB會針對每一頁進行加密或解密操作,每一頁大小為4096,這大小都為512的倍數。我們以二進制方式去打開DB文件可以看到滿足這個規律。那么這個規律可以幫助我們做什么事情呢,我們通過規律就會知道,db文件會全部映射到頁去處理加解密,那么我們解密思路可以總結為:


0.讀取文件內容。

1.找到生成解密的KEY。

2.找到解密函數,傳入KEY以及讀取的文件內容。

3.將解密函數返回的內容流讀取出來即為解密內容。

總結

以上是生活随笔為你收集整理的SQLite加解密的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。