在将数据库放入资产文件夹之前对其进行加密,以便将其与SQLCipher一起使用?

时间:2015-10-13 10:00:33

标签: android database android-sqlite sqlcipher

我的应用程序适用于已提供的数据库。我用sqlite脚本手动生成这个,然后把它放在我的android studio项目的资产文件夹中。

我想加密它并使用SQLCipher使用它。我已经在我的Android应用程序上实现了它,但是我需要在将数据库放在资产文件夹之前对其进行加密,以便为用户提供我可以使用SQLCipher使用的已经加密的数据库。

我该怎么做?提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用SQLCipher命令行shell创建加密的SQLCipher数据库:

./sqlcipher foo.db
sqlcipher> PRAGMA key = 'foo';
sqlcipher> CREATE TABLE t1(a,b);
sqlcipher> INSERT INTO t1(a,b) VALUES('one for the money', 'two for the show');
sqlcipher> .q

您可以找到有关创建SQLCipher shell here的文档。或者,如果您已有数据库,则可以使用sqlcipher_export(...)便捷功能将纯文本数据库导出到SQLCipher加密文件。您可以通过SQLCipher命令行shell运行sqlcipher_export函数,也可以使用SQLCipher for Android在Android设备上以编程方式运行。