如何在android中解密SQLCipher加密文件?

Dev*_*per 5 encryption android sqlcipher

我在android中使用SQLCipher开发了应用程序.这是保护数据库文件到应用程序的安全方法.它适用于加密,但我想解密加密的DB文件,并希望查看SQLite浏览器.

实际上我有很多表及其数据可用.现在,如果我想查看加密的数据库数据,就无法查看它(只有可用于查看数据的日志).但是使用SQLite浏览器我看不到它.

我正在使用"info.guardianproject.database.sqlcipher.SQLiteDatabase"

我已经尝试了很多方法来解密它并查看SQLite浏览器,但它给出了错误"An Error Occured:file is not a sqlite3 database".

任何人都可以帮我解密加密的DB文件.

或者我应该复制加密DB文件并使用"info.guardianproject.database.sqlcipher.SQLiteDatabase"解密它 并使用它来查看所有表.

谢谢,

Mishal Shah

Tob*_*run 5

我通过从设备中提取数据库并对其进行解密来解决这个问题.下面的脚本将生成一个解密的数据库文件.可以使用SQLite-viewer打开此文件.

decrypt.sh

#!/bin/bash
# Bashscript to decrypt databases

echo "pull db from device.."
adb pull /data/data/com.example/databases/database.db

echo "removing previous decrypted db, if existent.."
rm -r decrypted_database.db

echo "decrypting database.db into decrypted_database.db"
sqlcipher -line database.db 'PRAGMA key = "encryption_key";ATTACH DATABASE "decrypted_database.db" AS decrypted_database KEY "";SELECT sqlcipher_export("decrypted_database");DETACH DATABASE decrypted_database;'
Run Code Online (Sandbox Code Playgroud)

应该在你的路径中:

替换脚本:

  • com.example与您的包名称
  • database.db,名称为databasefile
  • encryption_key,带加密密码

注意:设备应该是root


Cha*_*ger -1

Gnome 的 GDA 可以做到这一点。在这里下载。