在Android中加密现有数据库

时间:2015-04-24 16:02:59

标签: android database sqlite encryption

我已在Play商店发布了一款应用。现在,我想加密应用程序的数据库。

我知道Android的SQLCipher可以为我做这个。但问题是我的应用程序已经被很多用户使用,并且里面有很多未加密的数据。

现在,如何将SQLCipher与现有的未加密数据库一起使用?这样我以前的所有数据都可以加密而没有任何问题,新数据可以正常运行。

1 个答案:

答案 0 :(得分:0)

您可以使用以下命令使用SqlCipher加密纯文本数据库,也可以在GitHub上找到Java示例代码。

$ ./sqlcipher plaintext.db
sqlite> ATTACH DATABASE 'encrypted.db' AS encrypted KEY 'testkey';
sqlite> SELECT sqlcipher_export('encrypted');
sqlite> DETACH DATABASE encrypted;

您可以通过覆盖安装程序中的onUpgrade方法来加密用户数据库,作为新应用安装的一部分。