當前位置:首頁 » 數據倉庫 » android加密資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

android加密資料庫

發布時間: 2022-09-04 01:24:08

Ⅰ 加密/解密Android現有的資料庫使用sqlCipher問題,怎麼解決

針對sqlite資料庫文件,進行加密。現有兩種方案如下:

1.對資料庫中的數據進行加密。
2.對資料庫文件進行加密

1.uin怎麼獲取?

這個uin不是登錄的帳號,而是屬於內部的、程序界面上不可見的一個編號。

至於查看,最簡單的方法就是登錄web微信後,按F12打開網頁調試工具,然後ctrl+F搜索「uin」,可以找到一串長長的URL,裡面的uin就是當前登錄的微信的uin。


有一種方法就是配置文件里,導出的微信目錄下有幾個cfg文件,這幾個文件里有保存,不過是java的hashmap,怎麼解析留給小夥伴們自己琢磨吧,

還有就是有朋友反應退出微信(後台運行不叫退出)或者注銷微信後會清空這些配置信息,所以小夥伴們導出的時候記得在微信登陸狀態下導出。博主自己鼓搗了一
個小程序來完成解析。

2.一個手機多個登錄帳號怎麼辦(沒有uin怎麼辦)


據博主那個解密的帖子,必須知道串號和uin。串號好說,配置中一般都有可以搞到,uin從配置中讀取出來的時候只有當前登錄的或者最後登錄的,其他的幾
個記錄都沒辦法解密。網上某軟體的解決方法是讓用戶一個一個登錄後再導出。這個解決方法在某些情況下是不可能的,或者有時候根本不知道uin。

後來經過一個朋友的指點,博主終於發現了解決方法,可以從配置中秒讀出來這個uin,這個方法暫時不透漏了,只是說明下這個異常情況。

3.串號和uin怎麼都正確的怎麼還是沒辦法解密


說說串號這個玩意,幾個熱心的朋友反饋了這個問題,經過博主測試發現不同的手機使用的不一定是IMEI,也可能是IMSI等等,而且串號也不一定是標準的

15位,可能是各種奇葩,比如輸入*#06#出來的是一個,但是在微信程序里用的卻是另一個非常奇葩的東西,這種情況多在雙卡雙待和山寨機中出現,經過嚴
格的測試,現在已經能做到精確識別,那幾位熱心的朋友也贈與了不同的代碼表示鼓勵。

4.計算出來了正確的key為什麼無法打開資料庫文件


信這個變態用的不是標準的sqlite資料庫,那個帖子也提到了不是資料庫加密,是文件的內容加密,其實是sqlcipher。官方上竟然還賣到
149$,不過倒是開放了源碼,水平夠高的可以自己嘗試編譯。google還能搜索到sqlcipher for
windows這個很好編譯,不過博主不知是長相問題還是人品問題,編譯出來的無法打開微信的資料庫,後來改了這份代碼才完成。

5.資料庫文件內容是加密的,怎麼還原


個是某些特殊情況下用到的,比如聊天記錄刪除了資料庫中就沒了,但是某個網友測試說資料庫無法查詢出來了,但是在文件中還是有殘留的。這個情況我沒測試
過,不過想想感覺有這個可能,就跟硬碟上刪除了文件其實就是刪除了文件的硬碟索引,內容還是殘留在硬碟上可以還原一樣,sqlite資料庫刪除的條目只是
抹去了索引,內容還存在這個文件中。

網上的都是直接打開讀取,並沒有解密還原這個文件成普通的sqlite資料庫,使用sqlcipher
的導出方法也只是將可查詢的內容導出。後來博主花了時間通讀了內容加密的方式,做了一個小程序將加密的文件內容直接解密,不操作修改任何數據,非資料庫轉
換,直接數據流解密,完全還原出來了原始的未加密的資料庫文件,大小不變,無內容損失,可以直接用sqlite admin等工具直接打開。

6.已經刪除的聊天內容可以恢復么

通過上述第5的方式還原出原數據後,經測試可以恢復。sqlite的刪除並不會從文件中徹底刪掉,而是抹掉索引,所以可以通過掃描原始文件恢復。前提是沒有重裝過微信。。。

Ⅱ 問一下,給android加密哪些加密方式最好最有效

朋友你好,很高興為你解決問題。

android加密的最佳加密方式可採用安卓應用APK加密工具,一鍵集成DEX加密、SO文件加密、DLL文件加密、內存保護、反調試、防二次打包等功能。

可以有效避免核心代碼被破解,請求協議被偽造,被植入惡意代碼後重打包等諸多安全風 險!

有效五個杜絕:

• 杜絕APP包被植入病毒或廣 告,竊 取用戶隱 私信息,推送垃 圾廣 告;

• 維持應用原有的純凈度和企業信譽度。

• 杜絕競 爭對手逆向分析應用核心技術,竊 取企業勞動成果;

• 杜絕攻 擊者挖掘應用漏洞,發起惡意攻 擊行為。

• 杜絕應用廣 告代碼被刪除,影響經 濟收 益;

• 杜絕應用廣 告代碼被篡改,廣 告收 益被攻 擊者竊取。

希望以上解答能夠幫助到你,參考資料:http://www.kiwisec.com/proct/apkEncrypt.shtml。

祝:開心每一天。

Ⅲ Android 開發,如何連接帶有pragma key加密的SQLlite資料庫

[html]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="使用SQLCipher對資料庫進行加密"
android:layout_centerHorizontal="true"

Ⅳ 在android中如何打開加密過的sqlite資料庫

在ANDROID中,應用的數據是私有的,你要得到其他應用的數據,可以通過ContentProvider來實現。

Ⅳ 求助關於sqlcipher給android資料庫加密

你想對儲存在data/data目錄下的那個資料庫文件進行加密,這樣加密肯定可以,但是你的程序同樣也不好讀取到。簡而言之這種方法不好不適用。
你想讓資料庫裡面的儲存的東西讓別人不知道,只要對儲存的內容進行加密就行了 ,應該會有相應的包,我沒用過你可以網路一下,當然啦,也不需要用包,包裡面也是代碼,所以你也可以選擇自己寫,最簡單的加密方法就是把每個字元都移動多少位(一共有65535個字元)。比如你想存一個字元串「abc」 就把a,b,c移動10000位 取的時候再把它移回來。
我用一個字元做實例 char c= 'a'; char cc = 'a'+10000; System.out.print( "c="+c+" cc="+cc+" cc-10000="+(cc-10000) ); 輸出結果 c=a cc=? cc-10000=97 這個97就是對應的ascii碼 就是這樣實現加密的!

Ⅵ 如何在手機上搭建加密資料庫

用SQLCipher進行資料庫加密。
SQLite目前已經是比較流行的數據存儲操作的API了。Android和iOS系統提供的API中操作資料庫默認均採用了SQLite方案。而SQLCipher是基於SQLite的加密資料庫存取方案,集成相對比較快捷而且透明,在一定程度上保證了數據的安全。
代碼設置:
如果你用的是系統sqlite3的API,則代碼基本不用變,因為SQLCipher是基於系統的sqlite3API擴展的;
如果你用的是FMDB,更無需擔心,因為FMDB是封裝的系統sqlite3API;
唯一需要做的,就是初始化打開資料庫文件sqlite3_open之後,緊跟著執行sqlite3_key設置資料庫加密的密鑰,於是sqlcipher集成工作就完成了。如果你用的是FMDB,可以直接用setKey方法;如果不是,也可以去FMDataBase.m源碼中拷貝這個方法的邏輯,方便調用

Ⅶ android 資料庫加密方式有哪些

對稱加密,非對稱加密

Ⅷ android數據加密

存儲的時候加密,自己程序使用的時候解密,不過會影響性能

Ⅸ android編程中,怎樣更改sqlcipher加密資料庫的密碼呢

貌似不是商用加密演算法,應該是自己定義的
解密很麻煩的,需要大量樣本,不然就得猜了
給你點提示,你這個演算法密文長度是明文長度的兩倍,應該是由明文ASCII碼運算得出的

Ⅹ android sqlite資料庫怎麼加密

按我的理解,你可以做一個加密解密的函數,數據存進資料庫之前都加密一下,取出來的時候再解密,這樣就算別人看到了資料庫里的數據,也完全不知道是什麼意思 查看原帖>>