我正在构建一个需要加密数据库的Android应用。为此,我现在要使用SQLCipher。我现在正在阅读有关它的内容,但是有些东西我不理解。密码在哪里?应该将其存储在Java代码中的某个位置,还是可以使用用户的(4位数字)密码对数据库进行加密和解密?

并进一步思考;如果我有多个用户可以登录到应用程序(我总是使用我们自己的API确认密码),可以为具有不同密码的多个用户提供对同一数据库的访问权限(即解密)吗?

欢迎所有提示!

最佳答案

密码在哪里?


在用户的头部或其他选择存储的地方。


  是否应将其存储在Java代码中的某个位置


如果您想要有用的安全性,则不需要。任何人都可以对应用程序进行反向工程以获取硬编码的密码短语。


  用户的(4位)密码可以用于加密和解密数据库吗?


我不知道你指的是什么。当然,欢迎您提示用户输入密码。但是,请不要将其限制为4位数字,因为可以很容易地将其强行使用。


  是否可以为多个具有不同密码的用户提供对同一数据库的访问权限(即解密)?


并不是的。 SQLCipher每个数据库仅支持一个密码短语。每个用户可以有不同的数据库,每个数据库都用用户自己希望的像样的密码加密。

关于java - SQLCipher如何解码数据库?密码存储在哪里?如何与多个用户合作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21404162/

10-09 05:30