当前位置:  开发笔记 > 数据库 > 正文

Sqlite数据库安全性

如何解决《Sqlite数据库安全性》经验,为你挑选了4个好方法。

我正在开发一个存储用户敏感数据的应用程序.我的问题是使用用户可以查看存储数据的其他应用程序.然后我需要为数据提供更好的安全性.

有没有办法为SQLite数据库和表提供更好的安全性?



1> Shade..:

在数据库中输入数据之前加密数据.据我所知,SQLite数据库保存在/ data /目录中的某个文件中.更重要的是,您的数据以纯文本格式保存.这意味着有人可以通过生根电话,获取.db SQLite文件并使用文本编辑器打开它来提取数据.

所以,加密你的数据:)

- 好吧,也许不是文本编辑器,而是简单的十六进制编辑器.无论如何...


任何能够生根电话的人都能够反编译APK并获得解密密钥.
没有"更好的方法".任何能够生根电话的人都能够反编译APK并获得解密密钥.加密数据库可以保护您免受一定比例的人(那些知道如何root但不打扰寻找解密密钥的人).这是一个相当基本的安全规则,您无法完全保护数据免受持有相关设备的用户的影响.
@CommonsWare:我完全同意你的看法.但是,当我们将自己局限于实际问题时(关于数据,存储在SQLite数据库中并且正在寻找"为sqlite数据库和表提供更好安全性的方法"),那么,您是否提出了更好的方法提高安全性?除此之外,是的,物理访问是root访问.
使用单向散列而不是实际将其存储在设备上是一种更好的方法.只需在散列后比较有问题的数据.这样一来,如果设备丢失,他们可能会从手机上获取您的信息,但是他们很难用其他任何方式获取它.我喜欢md5,但是有很多哈希算法..

2> Markus Jungi..:

查看SQLCipher for Android.它是免费的(Apache 2和BSD许可证).

PS.:有些ORM现在也支持SQLCipher,例如我们的greenDAO.



3> Jay..:

sqlite的作者提供了一个加密数据的版本.但它不是免费的



4> 小智..:

您可以使用从服务器检索到的用户特定盐来加密数据.这样,即使使用root访问权限,您也需要用户salt来解密数据库.由于您可以控制盐,因此您可以提供额外的安全保护,您的用户始终需要网络连接才能访问其数据.

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有