我正在构建一个Android应用程序,我需要在其中加密数据库。为此,我现在想要使用SQLCipher。我现在正在读它,但有一些我不明白的东西;密码在哪里?它应该存储在Java代码中的某个位置,还是可以使用用户的(4位)密码来加密和解密数据库?
进一步思考;如果我有多个用户可以登录应用程序(我总是用我们自己的API确认密码)怎么办?是否有可能让几个用户使用不同的密码访问同一个数据库(即解密它)?
欢迎所有提示!
答案 0 :(得分:3)
密码在哪里?
在用户的头脑或用户选择存储的其他地方。
是否应该存储在Java代码中的某个地方
如果您需要有用的安全性,请不要。任何人都可以对应用程序进行逆向工程以获得硬编码的密码。
用户的(4位)密码可以用来加密和解密数据库吗?
我不知道你指的是什么。当然欢迎您提示用户输入密码。但请不要将其限制为4位数值,因为这可能非常容易被强制使用。
是否可以让几个用户使用不同的密码访问同一个数据库(即解密)?
不是真的。 SQLCipher每个数据库只支持一个密码。您可以为每个用户创建不同的数据库,每个数据库都使用用户自己的希望密码来加密。