问题标签 [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 数据库保护 Greendao 使用的密码?
我想用 SQLCipher 保护用于 Greendao db 的密码。我正在使用密钥库生成密钥并使用该密钥加密从服务器获取的密码。我想使用加密数据作为数据库的密码。问题是密码每次生成不同的加密数据。(我知道它按预期工作)。有没有办法每次都生成类似的加密数据?我正在使用以下代码进行加密:-
android - 无法使用 SQLiteCipher 从 SD 卡/外部存储更新数据库
我想使用 SQLiteCipher 从 sdcard 创建一个数据库,但在设备文件资源管理器中给我未从 ExternalStorage/RemovableSDCard 更新的日期和时间。
DBHelpers.Java
MainActivity.java
AndroidManifest.xml
android - Sqlcipher 未能在 0,0 处为 text/blob 分配 1638057 字节
所以,我有一个使用 sqlcipher 与数据库对话的 Cordova 应用程序。有一个特定的insert
语句,我必须在 Db 中插入大量数据。
所以插入失败给我以下错误:
经过研究,我发现 sqlcipher 的限制为 1 MB。我发现的一个解决方案是升级到 sqlcipher 具有动态大小的版本 3.5.7。
升级到 3.5.7 后,我在启动应用程序时,应用程序停止工作,日志显示以下错误
SQLiteDatabase.loadLibs(this);
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/org.something.offline-upC4lfhZqsaVGORPq1Gtgg==/base.apk"],nativeLibraryDirectories=[/data/app/org.something .offline-upC4lfhZqsaVGORPq1Gtgg==/lib/arm, /system/fake-libs, /data/app/org.something.offline-upC4lfhZqsaVGORPq1Gtgg==/base.apk!/lib/armeabi-v7a, /system/lib, / system/vendor/lib]]] 找不到“libsqlcipher.so”
我在网上搜索了这个错误,但没有得到任何解决方案。
编辑:解决了上述问题。这是一个包装问题。我忘记导入 liquibase.so 文件现在我收到一个新错误:https ://pastebin.com/jzX9AqEX
sqlite - SQlite 中的 PRAGMA Key='SomeKey' 是否加密/解密数据库的整个数据?
我们正在开发 Xamarin.forms 应用程序,我们必须加密我们的数据库。在谷歌搜索时,我发现一些东西是“PRAGMA key”。当我开始在我的代码中使用它然后通过任何浏览器打开 db 文件时,我会看到一个对话框来输入密码。
我的问题是,'PRAGMA key' 是加密整个数据库还是就像打开数据库文件的密码一样工作。
任何帮助是极大的赞赏。
android - Android自定义迁移Sqlcipher从3到4
我在我的应用程序中将 Sqlcipher for Android 从 3.5.7 升级到了 4.1.3。
对于使用 Sqlcipher 3 创建的现有数据库,我需要自定义迁移,因为它基于自定义参数,本文的选项 3 也说明了这一点。
当我尝试打开数据库时出现此异常。
这是我的代码:
该文件存在并且密码正确:如果我降级 Sqlcipher 库,则相同的代码可以工作。我做错了什么?
android - SQLiteException:将 sqlcipher 版本从 3 升级到 4 时文件不是数据库
我很久以前在我们的项目中集成了sqlcipher。由于一些安全问题,我们必须升级 sqlcipher 的版本。我已经通过以下链接
- https://discuss.zetetic.net/t/migrating-from-sqlcipher-3-5-1-to-4-1-3-in-android/3652
- https://discuss.zetetic.net/t/upgrading-sqlcipher-for-android-from-3-to-4/3580
但我不知道在哪里添加该代码。我如何将他们的代码与我的集成。
这是我的 Logcat
这是我的数据库相关代码。
请帮助我理解这一点。
android - 计算数据库实时数据时出现异常 - 迁移期间崩溃
我正在使用 cwac-saferoom 版本 1.0.4 并且某些设备在将应用程序更新到新版本后立即出现此问题。
致命异常:java.lang.RuntimeException:计算数据库实时数据时出现异常。在 androidx.room.RoomTrackingLiveData$1.run(SourceFile:6) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)在 java.lang.Thread.run(Thread.java:764)
来自 sqlcipher 本身的另一部分日志是:
由 net.sqlcipher.database.SQLiteException: file is not a database: 引起,编译时:select count(*) from sqlite_master; 在 net.sqlcipher.database.SQLiteCompiledSql.native_compile(SourceFile) 在 net.sqlcipher.database.SQLiteCompiledSql.compile(SourceFile:3) 在 net.sqlcipher.database.SQLiteCompiledSql.(SourceFile:12) 在 net.sqlcipher.database.SQLiteProgram .(SourceFile:18) at net.sqlcipher.database.SQLiteQuery.(SourceFile:1) at net.sqlcipher.database.SQLiteDirectCursorDriver.query(SourceFile:9) at net.sqlcipher.database.SQLiteDatabase.rawQueryWithFactory(SourceFile:5)在 net.sqlcipher.database.SQLiteDatabase.rawQuery(SourceFile:1) 在 net.sqlcipher.database.SQLiteDatabase.keyDatabase(SourceFile:6) 在 net.sqlcipher.database.SQLiteDatabase。
java - 将 SqlCipher 版本更新到 4.2.0 版本后,我遇到了崩溃
将 SqlCipher 版本更新到 4.2.0 后,虽然它在以前的版本 3.5.9 中工作,但我遇到了以下回溯的崩溃。
android - 使用 SQLite Cipher 进行数据库加密后 Android 中的 java.lang.UnsatisfiedLinkError
在添加 SQlite 密码之前,我一直在我的 android 应用程序中成功使用串行端口和生物识别库。实施加密数据库后......我突然得到这个异常。即使花了很长时间也不确定原因。
这是我得到的堆栈跟踪。
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip 文件“/data/app/com.billing.app-1/base.apk”,zip 文件“/data/app/com.billing.app- 1/split_lib_dependencies_apk.apk”,压缩文件“/data/app/com.billing.app-1/split_lib_slice_0_apk.apk”,压缩文件“/data/app/com.billing.app-1/split_lib_slice_1_apk.apk”,压缩文件“/data/app/com.billing.app-1/split_lib_slice_2_apk.apk”,压缩文件“/data/app/com.billing.app-1/split_lib_slice_3_apk.apk”,压缩文件“/data/app/com .billing.app-1/split_lib_slice_4_apk.apk”,压缩文件“/data/app/com.billing.app-1/split_lib_slice_5_apk.apk”,压缩文件“/data/app/com.billing.app-1/split_lib_slice_6_apk” .apk”,压缩文件“/data/app/com.billing.app-1/split_lib_slice_7_apk.apk”,压缩文件“/data/app/com.billing。app-1/split_lib_slice_8_apk.apk", zip 文件 "/data/app/com.billing.app-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.billing.app-1/lib/arm64 , /data/app/com.billing.app-1/base.apk!/lib/arm64-v8a, /data/app/com.billing.app-1/split_lib_dependencies_apk.apk!/lib/arm64-v8a, / data/app/com.billing.app-1/split_lib_slice_0_apk.apk!/lib/arm64-v8a, /data/app/com.billing.app-1/split_lib_slice_1_apk.apk!/lib/arm64-v8a, /data/ app/com.billing.app-1/split_lib_slice_2_apk.apk!/lib/arm64-v8a, /data/app/com.billing.app-1/split_lib_slice_3_apk.apk!/lib/arm64-v8a, /data/app/ com.billing.app-1/split_lib_slice_4_apk.apk!/lib/arm64-v8a、/data/app/com.billing.app-1/split_lib_slice_5_apk.apk!/lib/arm64-v8a、/data/app/com。 billing.app-1/split_lib_slice_6_apk.apk!/lib/arm64-v8a,/data/app/com.billing.app-1/split_lib_slice_7_apk.apk!/lib/arm64-v8a, /data/app/com.billing.app-1/split_lib_slice_8_apk.apk!/lib/arm64-v8a, /data/app/com.billing.app-1/split_lib_slice_9_apk.apk!/lib /arm64-v8a、/system/lib64、/vendor/lib64、/system/vendor/lib64]]] 找不到“libserial_port.so”
错误说 - 找不到“libserial_port.so”
如图所示,我已经在 jniLibs 中包含了 .so。
这是我的 app.gradle 的样子