用于加密的SQLCipher和密码

时间:2014-11-18 09:31:25

标签: android sqlcipher

我最近更改了我的应用程序以使用SQLCipher API而不是标准的android.database.sqlite。

最初用户在首次登录应用时会输入用户名和密码。该应用程序验证我们的服务器的凭据。如果它们是正确的,我将用户名和密码存储在手机上的sqllite Db中。然后对手机的数据库进行后续登录,无需网络连接。

我也对apk进行了混淆。

存储的密码还用于获取用户的rota,其中包含敏感的客户端数据。例如,数字代码,以获得进入客户的房子,地址等。这是需要保护,包括手机被盗,根或反编译。

我的问题是我明白SQLCipher加密/解密都会在每次调用

时自动发生
SQLiteDatabase db = dbhelper.getWritableDatabase("12345");

12345只是我现在硬编码的一些字符串。我希望这是用户登录时的密码。

最好的方法是什么?我需要找到一种安全存储用户密码并用于加密的方法。我不希望在应用程序中硬编码任何密码(除非这是唯一的方法)。

问题是如何调用

SQLiteDatabase db = dbhelper.getWritableDatabase("STORED PASSOWRD IN DB");
return db.query(DBHelper.TABLECARER, null, null, null, null, null, null);

当光标中有密码?

由于

1 个答案:

答案 0 :(得分:2)

请参阅此链接: http://www.informit.com/articles/article.aspx?p=2268753&seqNum=4

请注意,您不应将密钥存储在具有受保护数据的设备上