问题标签 [sqlcipher]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 与 RestKit 一起使用时如何加密 SQLite(种子/其他)数据库
我正在使用 RestKit 来执行数据库播种,以及执行本地持久性。相关的核心数据和对象映射按预期工作。但是,我现在需要加密本地数据库。我知道以下选项通常用于保护 SQLite 数据库
- 使用某种带有 Lion Server 的 MDM/Profile Manager 来保护应用程序数据(远程擦除等)
- 使用 SQLCipher 加密数据库
但是,SQLCipher 不适用于 RestKit。有人遇到过这种情况,还有什么可以加密本地 SQLite 的吗?我想继续使用 RestKit。
objective-c - 不知道如何使用 SQLCipher 加密数据库
我已经将 SQLCipher 包含在我的项目中,就像在这个链接中解释的那样:http: //sqlcipher.net/ios-tutorial/
但是我不确定如何加密我从上面的链接中阅读了描述但没有得到的数据库。
实际上我正在做的是,如果应用程序是第一次打开,那么它会将数据库(即没有加密)复制到文档目录。从捆绑包复制到文档目录时,我的数据库还有一件事是空白的。
打开数据库后,我尝试使用 sqlite3_key 函数,但没有加密。但是我没有发现从捆绑包复制到文档目录时如何加密数据库之类的东西。我打算使用FMDB,所以最好按照那个来回复。
如果有任何教程,请指导我如何做到这一点或指出方向。还建议应该采用什么标准方法来做到这一点。
android - 在 Android OS Ice Cream Sandwich 中保护数据库密码
我正在使用 Sql 密码来保护数据库密码,但它不适用于 Ice Cream Sandwich,Sql 密码是否可用于 android 4.0.3,如果没有,是否还有其他方法可以做到这一点。
请帮忙。
NB 方式应该是开源的。
java - 带有 Android 的 SQLCipher。创建工作正常,选择+插入不要
下午好。
我正在使用以下代码在 Android 应用程序中创建一个加密的数据库文件:
这工作正常并创建了文件,尽管在尝试访问此加密文件时出现多个错误,例如:
没有这样的表 TABLE_NAME 并且文件已加密或不是数据库
我只是使用相同的代码打开文件进行编辑,因为该函数被调用openOrCreateDatabase()
。我假设打开文件的过程与创建过程相反,并且您传递了原始密码?
请注意我正在使用正确的导入:
SQLiteDatabase.loadLibs(this);
并在onCreate()
方法中初始化。
如果他们有任何想法,有人可以指出我哪里出错了。
谢谢!
android - 在 Android 中使用 sqlcipher 后出现“sqlite3_open_v2("mydatabase.db", &handle, 6, NULL) failed”
在 Android 2.3.3 中使用 sqlcipher 时。我收到错误。
这是我的 DB.java 类
我创建了 DB.java 的对象并像这样使用它
一旦我执行此行_db.insertValuesInTable();
,我就会收到此错误
我已正确包含所有.so
, .jar
&.zip
文件。我仍然收到这个错误。如何解决这个问题?
ios - iOS App 中的离线和安全性
我正在为一个应用程序设计离线功能,该应用程序在离线模式下缓存数据并将其提供给用户。该应用程序还需要支持离线模式下的登录功能。
我认为 Sqlicipher 是比具有文件保护的核心数据安全性更好的选择,因为只有在 iOS 设备中实施数据保护时,才能确保数据的安全性。
而且我也害怕因为这个事件而导致iOS的硬件加密。
作为我为 Sqlicipher 设计的一部分,我计划了以下注视:
- 使用 SqlCipher 存储敏感数据。
- 将用户的凭据作为 SqlCipher DB 访问的密钥。
- 将用户的凭据存储在钥匙串访问中。
问题:
- 将凭据存储在钥匙串访问中是一种更安全且万无一失的选择。如果没有,有什么替代方法?
- 从数据保护的角度来看,我对核心数据安全性的理解是否正确?
c++ - SQLite 是否使用 SQLCipher 扩展泄漏内存?
我正在使用SQLCipher存储加密的SQLite数据库。但是,当我使用sqlite3_key
加密数据库时,我开始出现内存泄漏。观察以下示例:
此示例产生内存泄漏。如果我删除对 的调用sqlite3_key
,内存泄漏就会消失。
我已经缩小了一些可能的罪魁祸首:
- 尽管该示例使用内存数据库(因此
":memory:"
),但在使用基于文件的数据库时,我看到了相同的结果。 sqlite3_*
调用的所有返回码都是SQLITE_OK
,这意味着没有任何错误。10
for的缓冲区长度"passphrase"
不是问题。
但是,无论我创建多少连接或使用多少不同的加密密钥,内存泄漏总是大约 8 KB。这让我怀疑这实际上不是内存泄漏,而只是 SQLite/SQLCipher 中的一些不变的全局内存,不会手动释放。
有谁之前经历过这个吗?有没有办法摆脱泄漏?即使这不是官方的内存泄漏,也很难用这个礼物检测到真正的内存泄漏。
ios - 是否可以使用 sqlcipher 在 iOS 上使用全文搜索?
我在谷歌上搜索了很多,我找不到是否可以使用 sqlcipher 在 iOS 上使用全文搜索。
但我找不到任何关于它的文档。
android - 强制应用停止后无法使用原始密钥数据访问数据库
我正在尝试使用行键数据以避免密钥派生(根据SQLCipher 文档):
当我强制应用程序停止时,访问数据变得不可能。
如果不使用 SQLCipher,则不会发生此行为。即使在强制应用程序停止之后,数据库也是可读的。
我做错了什么?
提前致谢,
java - 更改 SQLCipher Android 中的密钥
您如何以编程方式更改 Android 中 SQLCipher 数据库的密钥?