问题标签 [sqlcipher-android]
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.
java - 不同风格的不同数据库具有相同方法的最佳实践?
我的 Androdi 应用程序中有两个不同的 falvours,它们应该使用不同的 SQL 实现。一种用途:
第二:
我有这样的方法:
我应该如何解决这种情况以避免复制和粘贴?最好的做法是什么?我有几个想法:第一个(有很多复制粘贴最糟糕的)是提供不同的方法:
其次是在导入适当的数据库(聚合,组合,因为 SQLiteDatabase 是最终的)中用其他一些类型包装这个类:
随着用法:
android - 使用 SQLCipher 加密后无法压缩 Android SQLite 数据库
我使用我的应用程序发布了一个只读数据库,包括它在 Assets/Database 目录中。所有数据均已预先填充。
在与数据库集成SQLCipher
并加密后,我注意到 APK 的大小从25MB 膨胀到了 150MB。原因是SQLite db 文件不再被压缩。
Android Studio 通常会压缩资源,但 DB 文件加密后似乎压缩文件没有效果。我尝试在外部使用常规 Zip 和 7Zip 进行测试,但没有区别,压缩文件与原始文件大小相同。
未加密的数据库大约为 130MB,压缩时只需要 18MB,因为其中大部分是文本和字符串压缩得很好。压缩加密的 db 文件在大小上没有区别。
通过服务器填充不是一个可行的选择,因为由于记录数量的原因,这将需要很长时间。下一个选择是从服务器下载完全加密的数据库文件,但对于 140MB 的文件,它仍然会太慢。
需要找到一种方法将加密数据库与应用程序一起发送,同时仍将应用程序大小保持在合理的20-30MB 范围内。
有任何想法吗?
谢谢。
android - 使用 SQLCipher -Android 将纯内容提供程序数据(由 SQLite 支持)升级为加密
我正在尝试通过应用升级来加密存储在我的内容提供商中的数据。我为此点击了以下链接,
How to implement SQLCipher when using SQLiteOpenHelper
虽然如果完成新安装,这工作得很好,但如果我去升级,应用程序崩溃并出现以下错误
我什至试图删除现有的表并创建一个新表只是为了看看这是否解决了问题,但也没有任何帮助。请建议如何解决这个问题,我的助手类如下,
我更新的提供者现在只需使用一个密钥来打开数据库,如下所示,
正如我所提到的,全新安装效果很好,但升级会使应用程序崩溃。请建议如何解决这个问题。
android - 尝试在 android 中实现 SQlcipher 时出错
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.sqlcipher_demo-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib] ]] 找不到“libsqlcipher_android.so”
我收到此错误。我在 libs 文件夹中添加了所有 jar 文件 n 能够看到所有文件夹中的 .so 文件。这些 jar 文件也被添加到 build.gradle 文件中。
来源:https ://www.zetetic.net/sqlcipher/sqlcipher-for-android/
android - Android SQLite 文件加密
我正在构建一个用于托管应用程序的 SDK。此 SDK 包括使用 SQLite 处理 DB。
其中一项要求是将数据库加密,以防止从设备中提取 SQLite 数据库并使用用户私人信息。
我开始使用SQLCipher,但不支持 64 位架构设备,这导致应用程序崩溃。
我检查了其他一些可能性,但所有这些都导致了其他问题,我决定自己尝试处理。
我的问题:
- Android是否有一些数据库文件的加密机制?
- 我可以在应用程序启动时加密文件,并在应用程序关闭时再次解密吗?我知道在 iOS 中存在某种称为NSFileProtection的可能性
- 你知道其他可以处理数据库加密、支持 64 位设备的库吗?
- 你知道是否有一个不使用 JNI(javax.crypto)的 Android 解决方案吗?
我很乐意获得任何信息或帮助。
android - SQLiteException:文件已加密或不是数据库:创建语言环境表失败
我有以下两个用于数据库操作的类。
和
然后我正在尝试为 deleteAllData() 方法编写单元测试
然后在运行单元测试时出现此错误。
我肯定每次都使用相同的密钥来打开数据库,因为它是常量。有人可以指出这里可能出现的问题。每次运行测试代码时都会遇到相同的错误。
android - 无法在 Sqlite Manager 中打开加密数据库
我已经按照本教程如何在 Android 中实现 SQLcipher 并在我现有的 SQLite 应用程序上实现了 SQLcipher,它运行良好。我能够从数据库中插入、获取记录(就像普通的 SQLite 应用程序一样)。但是,当我导出数据库并尝试使用 SQlite Manager(我使用 Windows 系统)打开它时,它要求我输入密码(这是加密的实际需要),但它不接受我用来加密的密码。它一直提示密码。
android - 如何在本地存储 SQLcipher 密码
我正在开发一个使用 SQLcipher 且处于脱机状态的应用程序,因此我无法从服务器获取密钥以与加密数据库通信。我必须将其安全地存储在设备内的某个位置。一种解决方案是优先存储密钥,但如果手机已植根,则可以访问这些文件夹。应用程序中使用的数据是高度机密的,我不能让它被访问。如果您推荐一些东西来对这种情况进行分类,那就太好了。提前致谢。
android - SQLCipher 在签名版本 APK 中导致 Android 崩溃
我在一个 android 项目中使用 SQLCipher。一切都在测试中运行良好,但是每当我构建一个签名的发布 APK 并安装它时,我都会收到以下错误并在我调用时崩溃
这是崩溃
在调试中运行应用程序时,我收到类似的错误,但它不会导致崩溃。
任何方向在这里都会很棒。谢谢。
android - 文件已加密或不是数据库:Android 中的 SQLCipher
我使用以下方式从 Linux 命令行加密了一个 SQLite 数据库。
我确实将加密的数据库放在我的 Android 项目的 assets 文件夹中,并以下列方式复制它。
但是当我试图打开这个数据库时,我收到错误“文件已加密或不是数据库”。我使用相同的密钥来打开我在命令行上用来加密它的密钥。
以这种方式打开数据库。
我错过了什么吗?