我在我的安卓应用程序中实现了SQLCipher,以保证数据库的安全。SQLCipher需要一个密钥来加密数据库文件。我面临的问题是密钥保护,如果我的应用程序被使用在一个根设备上,或者是反向工程,那么我的密钥将被公开,数据库可以被解密。
请注意,我的应用程序并不是每次用户打开密码时都要求输入密码,因此用户输入的密码不能用作密钥。我想实现像facebook这样的行为,whatsapp应用程序使用私钥/密钥对数据进行加密,而不需要任何密码,并且让用户随时登录。这些应用程序在哪里以及如何存储它们的密钥?
请提出一个保护key.Also的解决方案/算法,Android是否为数据保护/管理提供了这样的功能?
发布于 2018-03-07 06:41:07
您可以使用Andriod加密您的SQLCipher密码。
刚才我也遇到了同样的问题,SQLCipher被用来保护数据,但是密码本身并不安全。这允许存在一个安全漏洞,简单的反编译将以字符串常量的形式显示密码。
我的解决办法是:
下面是我创建的一个示例项目,它的SQLCipher用例与您的相同。
请注意,在上面的讨论中,您使用的作为加密密钥的术语用作DB的密码/编号。
发布于 2018-04-23 17:39:47
就我个人而言,我使用子字符串从字符串值中选择序列或唯一字符,然后将其连接起来以获得我的键,这是相当野蛮的,但我没有找到其他有效的解决方案。
https://stackoverflow.com/questions/49145592
复制相似问题