java - Android 加密/解密 sqlite 数据库 100% 安全

标签 java android sqlite security encryption

从 Android 安全的角度来看,我是一个新生婴儿。我想做的是加密/解密 Sqlite 数据库。

我已经完成了多个教程,但似乎没有任何效果。我已经完成了 Sql Cipher 链接,但在这里我编写了代码,但我遇到了以下问题:

Type Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lnet/sqlcipher/AbstractCursor$SelfContentObserver;

我也不需要密码保护的文件。我使用了 Android 库提供的 Cipher 默认类,如下所示:

Cipher c = Cipher.getInstance("RSA");
            c.init(Cipher.ENCRYPT_MODE, privateKey);

但我觉得它不安全。我想它可以被黑客解密。我需要 Sqlite 数据库的适当 100% 加密和解密安全性。

最佳答案

SQL Lite 是一个轻量级的数据库系统。话虽如此,它也几乎没有入侵系统的可能,可以使其加密或受密码保护。以下是我所知道的其中一些:-

  1. SEE :SQLite 加密扩展 (SEE) 是 SQLite 公共(public)域版本的附加组件,允许应用程序读取和写入加密的数据库文件。支持四种不同的加密算法:

    RC4

    OFB 模式下的 AES-128

    CCM 模式下的 AES-128

    OFB 模式下的 AES-256

  2. WxSQLite : 一个 wxWidgets 风格的 c++ 包装器,它也实现了 SQLite 的加密。

3。 SQLCipher - SQLCipher 占地面积小,性能出色,因此非常适合保护嵌入式应用程序数据库,非常适合移动开发。

我个人根据您的需要推荐 SQLCipher 是最好的选择。我已经尝试过了。强烈推荐开源系统。

关于java - Android 加密/解密 sqlite 数据库 100% 安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29746231/

相关文章:

java - 使用 Gson 将时间从 UTC 转换为其他时区失败

javascript - 每次页面加载后运行 JavaScript

java - 如何使用 Firebase 数据填充 Spinner?

java - 检查 Google 的用户名和密码

java - 使用 Junit 测试我的 java servlet?

android - 电话间隙 : "processMessage failed" unable to send javascript function (Cordova 2. 5.0)

android - 使用 Json 数据改造 POST 方法得到错误代码 400 : Bad Request

Java:从未知大小的数据库中读取值

database - 我可以在/sdcard 上下载 SQLite db 并从我的 Android 应用程序访问它吗?

sql - 如何在 Rails 中链接原始 SQL 查询或如何从 Rails 中的原始 SQL 查询返回 ActiveRecord_Relation?