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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

[DB那些事]数据库加密

發布時間:2024/6/21 综合教程 52 生活家
生活随笔 收集整理的這篇文章主要介紹了 [DB那些事]数据库加密 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說到數據庫加密,目前最好且唯一的方案就是SqlCipher對sqlite3整體加密,微信也用的它。開源,且支持很多平臺。

單就Android來說,集成不算太麻煩,1個jar包,3個so庫,1個zip。

jar包中基本上重寫了android.database.sqlite包中所有的類,全部替換成了net.sqlcipher.sqlite包。why?因為sqlcipher加密后,需要密碼才能打開該數據庫。所以它把所有的都重寫了一遍,這是一個坑,一會Stay再來說明。

整體來說sqlcipher還是比較好用的,封裝好了跟正常操作數據庫的方式一樣,只是在getWritableDatabase()時要多傳個password參數。

sqlcipher在性能上沒有太大的損失,而且在移動端數據量不是很大,基本可以忽略不計了。

現在坑來了,假如你之前用的是數據庫框架,而不是使用原生的方式,那么集成起來還有些麻煩。當然如果用的對象型數據庫,那跟sqlcipher就一點關系都沒有了。我們這里只說,如果以前用的是基于sqlite的數據庫框架集成sqlcipher。

比如,ormlite,它是object-relation-mapping,將你model中聲明的變量通過注解的方式和數據庫的表字段一一對應起來。

這個映射不在乎數據庫是sqlite,mysql還是什么。在ormlite-core核心包中,與數據庫的連接是個proxy,在對應的ormlite-android中來使用android系統提供給我們的db連接方式來實現這個proxy。這就是為什么ormlite要有兩個jar包。

如果要使用sqlcipher,那么所有android.database.sqlite中的類都要換成net.sqlcipher.sqlite中的類。但是ormlite-android中用的都是android.database.sqlite。這是個問題。對吧?

所幸ormlite分成了兩個包,ormlite-core.jar, ormlite-android.jar 并且它們還是開源的。我們可以把ormlite-android.jar中所有引用android.database.sqlite的地方手動替換為net.sqlcipher.sqlite。這個注意不錯吧?

也就是說。ormlite-core.jar不變,照樣導入這個jar,只是ormlite-android.jar要改成sqlcipher.jar中的那些Cursor, SqliteDatabase等等。

確定好解決方案之后,剩下的就好辦了。

這里說android studio的集成方式,如果是eclipse可以直接新建一個工程,做成library。

首先,新建一個module,因為會改很多東西,所以盡量單獨放一個module,以后做其他項目可以方便遷移。

導入sqlcipher,配置好環境。確保sqlcipher沒問題,能正確的加解密,進行crud。

導入ormlite-core.jar, 建議使用android studio的jcenter倉庫來導入

去ormlite的github主頁,把ormlite-android的源代碼拉下來,只需要ormlite-android就可以了。

注意。要用git拉代碼,別download as zip。你需要手動切換到對應的commit上。比如ormlite-core.jar版本是4.48,那么對應的ormlite-android也應該切換到4.48的tag上。保證兩個版本一致。

將所有ormlite-android中的代碼copy到你的module/src目錄下,然后手動將所有import android.database.sqlite的地方手動替換為import net.sqlcipher.sqlite

改為之后會有一個錯誤,因為sqlcipher需要密碼去getWritableDatabase(String password),這里需要對源碼做些修改,如下圖。

當然還有其他的小錯誤,自己想辦法解決好了,不難。

在自己的主app module中要繼承的SqliteOpenHelper還是OrmliteSqliteOpenHelper,sqlcipher已經集成到ormlite內部了,對外不可見。你只需要用帶有password的構造方法就可以了。如下圖。

其他調用方式都不用變了。以前寫的ormlite代碼都不用換了。開森,對不對。

代碼已經放到github上了。
github.com/Stay/ormlite-sqlcipher

p.s. 如果你現在使用的ormlite版本不是4.48,那么就自己動手把對應的ormlite-android的源代碼拉下來手動替換。

總結

以上是生活随笔為你收集整理的[DB那些事]数据库加密的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 911亚洲精品 | 免费黄色在线看 | 欧美日韩激情 | 亚洲男人天堂2020 | 无码人妻丰满熟妇精品区 | 波多野结衣先锋影音 | 男人的天堂国产 | 欧美特黄一级 | av一区二区在线观看 | 极品在线观看 | 亚洲性自拍 | 网站在线播放 | 综合av| 五月天激情丁香 | 黄色二级视频 | 6080亚洲精品一区二区 | 国产一区二区网址 | 91色综合 | 一个人看的www片免费高清中文 | 精品欧美一区二区三区 | 三上悠亚中文字幕在线播放 | 中文字幕avav | 日剧再来一次第十集 | 丰满少妇大力进入 | 国产理论视频 | 综合欧美亚洲 | 超碰在线国产97 | 亚洲一区网站 | 日韩国产综合 | 国产视频在线一区二区 | 天天干在线观看 | 5月婷婷6月丁香 | 欧美精品免费在线观看 | 不卡中文av | 二十四小时在线更新观看 | 国产av无码专区亚洲a∨毛片 | 亚洲男女视频 | 久久久婷婷 | 少妇一级淫免费播放 | 亚洲热影院 | 国产乡下妇女做爰 | 天堂网一区二区 | 日韩精品自拍 | 亚洲一区二区三区高清 | 亚洲尹人| 天天看毛片 | 久久艹在线视频 | 一区二区三区四区五区av | 蜜桃传媒一区二区亚洲 | 福利在线一区 | 思思精品视频 | 国产精品视频在线播放 | 95久久 | 在线观看欧美日韩 | 日本一区二区三区电影在线观看 | 国产微拍精品一区 | 天天干天天摸 | 国产精品拍拍 | 黄色不打码视频 | 伦在线 | 成av人在线 | 人人插人人看 | 久久国产精品影院 | 亚洲人交配视频 | 无人在线观看的免费高清视频 | 老地方在线观看免费动漫 | 韩国三色电费2024免费吗怎么看 | 亚洲激情在线观看视频 | 97视频一区二区 | www.日本在线观看 | 伊人av在线| 91看大片 | 国产乱妇4p交换乱免费视频 | 免费人成又黄又爽又色 | 国产老女人乱淫免费 | 懂色一区二区三区 | 久91| 久色电影 | 人人人人干 | 亚洲艹| 青青操精品 | 欧美高清大白屁股ass18 | 国产精品一区在线免费观看 | 亚洲国产成人在线 | 国产性生活一级片 | 亚洲一二三级 | 亚洲一区二区三区免费在线观看 | 日韩免费精品 | 国产chinesehd精品 | 夜夜撸 | 青青青视频在线播放 | 国产欧美一区二区三区精华液好吗 | 午夜999| 成 人 黄 色 片 在线播放 | 黄色免费观看网站 | 性xxxxbbbb | 精品综合久久久久 | 成熟妇人a片免费看网站 | 成年男女免费视频网站 |