簡體   English   中英

如何保護android中的sqlite db不被盜

[英]How can I protect sqlite db in android from being stolen

我正在制作一個 28MB 大小的 sq-lite 文件的應用程序,它最初位於 android 的資產文件夾中。 當它安裝在用戶中時,它會復制到系統文件夾。 因為這個數據庫對我來說是最重要的。 如果有人能得到這個文件,那么他就可以竊取我的信息。

當您解壓縮 APK 文件時,您將輕松獲得 sq-lite 文件。 有什么方法可以保護它或隱藏它或加密它,以便程序員或黑客無法通過提取 APK 文件輕松獲取數據庫。

您無法完全保護您的 SQLlite 數據庫,因為有人可以對您的代碼進行逆向工程並讀取您的保護機制的內容。

您可以采取備用路徑:

1)使數據庫在線,即不要將其放在您的應用程序中,讓您的產品聯系您的數據庫並進行查詢

2)加密在SQL精簡版中的數據,並對其進行解密在你的代碼里面飛-這將使它更難just偷走你的SQL精簡版,它不太守,但有總比沒有好

也許SQLCypher是你的朋友。 看到這里 它提供 256 位 AES 加密

我會加密 SQLite 中的數據,不可能讓它絕對牢不可破,但你可以嘗試破解它。 查找 AES 加密/解密以獲得正確的加密,但每次使用時都需要對其進行加密和解密。

我也不是 100% 的,但如果你將原始文件夾用於數據庫,它應該更難理解。

你不能完全保護你的 SQLite 數據庫,對我來說,我更喜歡:

1-損壞db文件(將其轉換為字節數組並更改一些值)

2-將其復制到資產文件夾中

3- 在第一次運行時修復資產中損壞的文件並將其復制到數據庫文件夾中。

我像這樣更改前 200 個字節的值:

        int index = 0;
        for(int i=0;i<100;i++)
        {
            byte tmp = b[index];
            b[index] = b[index + 1];
            b[index + 1] = tmp;
            index += 2;
        }

由於我只是替換了前 200 個字節的值,因此使用相同的代碼來修復前 200 個字節的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM