问题标签 [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.
android - android 发布版本中的 SQLCipher 加密错误。
我正在尝试使用 SQLCipher 加密数据库。我关注了http://lomza.totem-soft.com/tutorial-add-sqlcipher-to-your-android-app/并且它工作正常,应用程序处于调试模式。但是每当我尝试构建发布版本时,它就会崩溃。我什至尝试了每个可能的站点中提到的 proguard 规则。
这是我的节目
这是 logcat :
我在用compile 'net.zetetic:android-database-sqlcipher:3.5.7@aar'
android - 由于 sqlcipher 库和 NDK 限制,Android 7.0 Native 崩溃
我在 Android 7.0 Samsung S8 和许多其他此类本机崩溃上收到以下崩溃:
此崩溃已登录 Play 商店。对于我们在 Play 商店中提供的每个构建更新,它都会不断重复。
下面的库在我的应用程序中使用,它是唯一使用来自 NDK 的 jni 代码的库。
请帮助解决此崩溃问题。我的应用程序每天都在增加。见下图:
sqlite - 平滑迁移到加密数据库 (SQLChiper)
到目前为止,我一直在我的应用程序中使用未加密的数据库,现在我想使用 SQLCipher 将我的数据库迁移到加密数据库。这是我的情况。
对于下一个版本,我将更新数据库版本并执行脚本。要调用 onUpgrade(),我必须调用 geReadableDatabase() 或 getWriteableDatabase()。因此,当我调用任何 operation() 时,它将执行我的脚本并执行以下操作。
创建和加密数据库。
将数据从旧(未加密)数据库导出到加密数据库。
删除旧数据库。
因此,当我执行迁移时,我希望暂停所有其他操作,直到迁移完成,然后将在加密数据库上执行暂停的操作。
不太确定如何实现这一目标,所以我应该使用什么方法来实现这一目标。
android - 如何在 Android 中保护我的加密密钥?
我已SQLCipher
在我的 Android 应用程序中实现以使其数据库安全。SQLCipher
需要一个密钥来加密数据库文件。我面临的问题是密钥保护,如果我的应用程序在有根设备上使用或被反向工程,那么我的密钥将被暴露并且数据库可以被解密。
请注意,我的应用程序不会在每次用户打开它时都要求输入密码,因此用户输入的密码不能用作密钥。我想实现像 facebook、whatsapp 应用程序这样的行为,它使用私钥/密钥加密数据而不询问任何密码,并使用户始终保持登录状态。这些应用程序在哪里以及如何存储它们的密钥?
请提出一个可以保护密钥的解决方案/算法。此外,Android OS 是否提供任何此类数据保护/管理功能?
android - 将 android.database.sqlite.SQLiteOpenHelper 更改为 net.sqlcipher.database.SQLiteOpenHelper 后未调用 onUpgrade 和 onCreate
为了开始在我正在开发的应用程序中使用 SQLCipher Community Edition,我一直在关注官方文档。所以,我做了一个适当的 gradle 导入如下:
我添加了
在 MainApplication.java 中。由于我的应用程序已经发布,我还在我的 SQLiteOpenHelper 类实例的 onUpgrade() 方法中放置了一些迁移代码。不幸的是,虽然我升级了数据库版本号,但我还是调用了:
getInstance().getReadableDatabase("testKey");
onUpgrade() 和 onCreate() 方法都不会被调用。我错过了配置中的某些内容吗?
android - 使用带有 sqlcipher 的密钥
我正在使用 sqlcipher 存储来自我的应用程序的数据,首先我遇到了麻烦,生成一个密钥,然后存储在密钥库中。
顺便说一句,需要没有像android 文档中描述的用户交互
这是我试图生成秘密的方式,
在这里,是我设置 sqldatabase 的地方
那么问题来了,我如何在密码字符串中使用秘密?目前,我只能以字节数组的形式获取秘密。
android - Android 和 SQLite 保护
我有一个带有 100k+ 行的 SQLite 数据库的 android 应用程序,从 assets 文件夹中的 *.db 文件填充。
我想让数据库更难从设备中提取出来。
首先,有人拉数据库的方法是什么?
他可以获取 APK 并从 assets 文件夹中提取 *.db 文件
应用启动后,可以查询设备的sqlite服务器
那么,让数据库更难拉取的方法是什么:
加密资产文件夹中的 *.db 文件
适用于 Android 的 SQLCipher?无论如何,我不希望用户输入密码,我(客户端)只是想让 SQLite 更难被提取,比如将密码存储在代码中并使用 proguard 使其难以找到
问候
android-sqlite - net.sqlcipher.database.SQLiteException: 文件不是数据库: , 编译时: select count(*) from sqlite_master
错误这一行:
打开数据库时。但怎么了?如何用密码打开数据库?谁能帮我?
- 我在 SQLITE Db Browser > File> Set encryption 上设置密码
- 在android部分打开这个密码
- 打开时显示错误
error : net.sqlcipher.database.SQLiteException: file is not a database: , while compiling: select count(*) from sqlite_master
任何人都可以帮我解决它吗?提前致谢
android - 无法解析 Android Studio 中 net.sqlcipher 导入中的符号“数据库”
任何想法为什么我有这个无法解析符号“数据库”在net.sqlcipher
. 我只是从 GitHub 克隆了 SQLCipher Android Test并想进行测试。
谢谢...