SQLCipher 与 DBFlow

2024-01-11

我曾经使用过 DBFlow,它在数据库方面非常简单,但我想问是否有一个很好的例子来将 SQLCipher 与 DBFlow 一起使用

我已点击此链接寻求帮助

Raizlabs/DBFlow https://github.com/Raizlabs/DBFlow

但是,如果有人可以提供一些简单的示例,那么将非常有助于通过简单的步骤创建安全的数据库应用程序。


ConductedClever 链接的使用文档看起来并不多,但这确实几乎是您所需要的。除了一些可以提及的细节:

我必须将 @aar 添加到 build.gradle 中的 dbflow-cipher 依赖项中,以使其首先通过 gradle:

// build.gradle
def dbflow_version = "3.1.1"
def sqlcipher_version = "3.5.4"

dependencies {
  annotationProcessor "com.github.Raizlabs.DBFlow:dbflow-processor:${dbflow_version}"
  compile "com.github.Raizlabs.DBFlow:dbflow-core:${dbflow_version}"
  compile "com.github.Raizlabs.DBFlow:dbflow:${dbflow_version}"
  compile "com.github.Raizlabs.DBFlow:dbflow-sqlcipher:${dbflow_version}@aar"
  compile "net.zetetic:android-database-sqlcipher:${sqlcipher_version}@aar"
}

根据需要更改密码:

// SQLCipherHelperImpl.java
public class SQLCipherHelperImpl extends SQLCipherOpenHelper {

  public SQLCipherHelperImpl(DatabaseDefinition databaseDefinition, DatabaseHelperListener listener) {
    super(databaseDefinition, listener);
  }

  @Override
  protected String getCipherSecret() {
    return "your-cipher-secret";
  }
}

如果您遵循dbflow 入门指南 https://github.com/Raizlabs/DBFlow/blob/master/usage2/GettingStarted.md并且您的数据库称为 AppDatabase 那么这是您应该传递给的类new DatabaseConfig.Builder(AppDatabase.class)初始化DBFlow时:

// AppDatabase.java
@Database(name = AppDatabase.NAME, version = AppDatabase.VERSION)
public class AppDatabase {

  public static final String NAME = "AppDatabase";

  public static final int VERSION = 1;
}

// DatabaseApplication.java
public class DatabaseApplication extends Application {
  @Override
  public void onCreate() {
    super.onCreate();
    FlowManager.init(new FlowConfig.Builder(this)
      .addDatabaseConfig(
        new DatabaseConfig.Builder(AppDatabase.class)
          .openHelper(new DatabaseConfig.OpenHelperCreator() {
            @Override
            public OpenHelper createHelper(DatabaseDefinition databaseDefinition, DatabaseHelperListener helperListener) {
              return new SQLCipherHelperImpl(databaseDefinition, helperListener);
            }
          })
          .build())
      .build());
  }
}

导出数据库并尝试在 SQLite 客户端中打开它。由于加密,现在应该会失败。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQLCipher 与 DBFlow 的相关文章

  • 好用的 Android 数据库 DBFlow

    数据库DBFlow应用场景及其分析 先上一张效果图 dbflow定义 dbflow是一款android高性的ORM数据库 可以使用在进行项目中有关数据库的操作 dbflow是Android SQLite ORM 的一个工具库 综合了 Act
  • 手把手教你获取x信本地数据库(利用Sqlcipher查看)

    最近一直在研究Xposed等一些hook框架 xff0c 进行学习做一些demo xff0c 这次就正好拿x信练练手 xff0c 学习学习 xff0c 也可以学习x信手机本地数据库的表结构设计等 好 xff0c 废话不多说 xff0c 直接
  • 尝试在 Android 中使用 Proguard 和 SQLcipher 时出现 NoClassDefFoundError

    我得到了ava lang NoClassDefFoundError net sqlcipher CursorWindow当尝试使用 sqlicipher 和 proguard 运行我的应用程序时 该项目在没有启用 proguard 的情况下
  • 在 Android 中使用 SQLCipher 加密/解密现有数据库

    我使用下面的代码来加密和解密我能够加密的数据库 但是当我尝试解密时 我收到以下异常 我引用了这个文档 and 测试用例太仍然面临同样的问题 例外 sqlite returned error code 26 msg file is encry
  • 使用 DBFlow 表和 Stetho 重复“id”列

    我正在使用 DBFlow 作为 ORM 库编写 Android 应用程序 所以 这是我的表格模型之一 Table database Database class public class Language extends BaseModel
  • 带有加密密码的 Sqlite 连接字符串

    我有一个加密数据库 使用 SQLite 密码 当我尝试使用连接字符串连接到数据库时 出现以下错误消息 SQL 逻辑错误无法使用 密码 连接字符串属性 库未构建加密支持 Imports System Data SQLite Public Cl
  • Android Proguard SqlCipher NoClassDefFoundError

    一整天都在与 Proguard 作斗争 并在 Proguard 官方网站以及 StackOverflow 上尝试了许多示例和解决方案 我有一个需要混淆的大型项目 其中有许多引用的库项目和 Jars 我从 2 个库 com google co
  • SqlCipher Mingw/msys 问题

    我有一个问题 我无法编译 SqlCipher 我正在用这个http groups google com group sqlcipher browse thread thread 55c6296b56bf4533 c792bbec6df7d4
  • SQL 游标在调用 getString 时抛出内存不足

    附件参考我之前的问题 内存不足 https stackoverflow com questions 25928354 out of memory during xml deserialisation 我会尽力做到尽可能精确 我从我的网络服务
  • sqlcipher - sqlcipher 的安全性如何?它被黑客入侵了吗?

    它在页面级别加密 SQLite 数据库 好吧 没问题 但是你的源代码呢 它已编译 但即使已编译 有人也可以反编译它 检索您的密码并解密数据库吗 SQLCipher 的安全性如何 根据SQLCipher设计文档 http sqlcipher
  • 在 Windows 上使用 SQLCipher 编译 SQLite

    我正在关注this http groups google com group sqlcipher browse thread thread 55c6296b56bf4533在 Windows 上使用 SQLCipher 编译 SQLite
  • 如何优化SQLcipher性能?

    我使用 SQLCipher 在我的应用程序中加密 sqlite 数据库 一切正常 但我的应用程序在获取数据库期间运行缓慢 我更改了PRAGMA kdf iter到 4000 仍然很慢 加密之前我没有任何问题 NSError openData
  • 将 ormlite-4.9 与 sqlcipher-2.08 集成

    我正在将 ormlite 4 9 与 sqlcipher 2 08 集成 我用谷歌搜索了一下 但没有成功 我也看到了格雷先生的回答 如何在 Android 中将 ORMLite 与 SQLCipher 一起使用 https stackove
  • SQLCipher 与 DBFlow

    我曾经使用过 DBFlow 它在数据库方面非常简单 但我想问是否有一个很好的例子来将 SQLCipher 与 DBFlow 一起使用 我已点击此链接寻求帮助 Raizlabs DBFlow https github com Raizlabs
  • iOS 魔法记录 & SQLCipher

    我正在使用 Magical Record 来保存我的数据 这些数据需要加密 所以我尝试将其与 SQLCipher 库结合起来 http sqlcipher net ios tutorial http sqlcipher net ios tu
  • java.lang.UnsatisfiedLinkError:无法加载 stlport_shared:findLibrary 返回 null(tess-two)

    我正在使用 sqlcipher jar 在 android 中加密数据库 并在中使用它的本机库 libs armeabi 文件夹 1 lib数据库sqlcipher so 2 libsqlcipher android so 3 libstl
  • xcode 5 中的 Shell 脚本调用错误

    我在我的项目中使用 openssl 和 sqlcipher 我必须从 Xcode 4 6 升级到 Xcode 5 但是我在 Xcode 5 中编译项目 它给我错误 cp libCrypto a 没有这样的文件或目录 Cp libssl a
  • 如何保护资产文件夹中的数据库 sqlite(通过加密)?

    我有过逆向工程的经验 人们可以在android中安静流畅地访问你的数据库 我想知道有什么方法可以在创建时仅对我的数据库进行加密 而不是混淆整个apk 然后在运行时我将使用我的数据库 我对数据库的了解较少 因此任何建议都有助于保护资产文件夹中
  • 如何在.Net中使用SQLCipher

    我想用C winform 读取一个SQLCipher数据库并找到一个开源项目SQLitePCL https github com ericsink SQLitePCL raw 但是我还没有找到这个使用的例子 而且文档也不是很多 有朋友用过这
  • 使用DBFlow,如何加密已经存在的数据库?

    我正在使用 DBFlow 来处理项目中的数据库 并且我想对现有数据库进行加密 我知道我可能必须删除现有的未加密数据库并创建另一个加密数据库 我也知道我可以将 SQLCipher 与 DBFlow 一起使用 如上所述文档 https gith

随机推荐

  • 从 JavaScript 调用 ASP.NET 函数

    我正在 ASP NET 中编写网页 我有一些 JavaScript 代码 并且有一个带有单击事件的提交按钮 是否可以使用 JavaScript 单击事件调用我在 ASP 中创建的方法 好吧 如果您不想使用 Ajax 或任何其他方式来完成此操
  • Android 地图性能因叠加层过多而变差?

    我的 Android 应用程序中有一张地图 显示了许多标记 20 50 但当我尝试滚动 缩放时 该应用程序的性能非常差 在 Google Android 地图中 我对披萨进行了示例搜索 还发现了一些 20 50 个结果 并且在缩放 滚动时我
  • angular2:如何测试具有可观察时间间隔的组件

    我有一个幻灯片放映组件 它有一个幻灯片对象的输入数组 并显示每个幻灯片对象 只要它是在slide time其本身 还有两个按钮 单击它们必须滑动到下一个项目并重置计时器 为了完成这项工作 我使用如下 Observables a SUBJEC
  • 即使使用 babel 插件,解构赋值在 IE 11 中也不起作用

    我遇到了一种情况 我添加了一个包含破坏性参数的中间件 当在谷歌浏览器中打开时 它工作正常 但它在互联网浏览器中打开失败 这是我的 webpack 配置文件 var path require path var webpack require
  • 'KMeansModel' 对象在 apache pyspark 中没有属性 'computeCost'

    我正在 pyspark 中试验聚类模型 我试图获得适合不同 K 值的簇的均方成本 def meanScore k df inputCol df columns 38 assembler VectorAssembler inputCols i
  • 在 directx 11 中一次渲染到多个纹理

    我正在尝试使用 C directx 11 SDK 一次渲染到两个纹理 我希望一个纹理包含结果图像的每个像素的颜色 渲染 3D 场景时我通常在屏幕上看到的颜色 另一个纹理包含每个像素的法线和深度 3 个浮点表示法线 1 个浮点表示法线 为深度
  • PHP中计算cron下次运行时间

    我正在我自己的个人框架中设计一个任务调度程序 并试图避免不那么灵活的 运行每个n分钟 小时 天 的方法会更容易实现 我想做的是模仿 cron 调度 我有适当的函数来分割模式并计算下一个日期 一个月中的某一天 的下一个值 目前 但如果有比我正
  • 如何在多线程应用程序中使用Hibernate?

    我正在尝试将 Hibernate 用于多线程应用程序 其中每个线程检索一个对象并尝试将其插入表中 我的代码如下所示 我每个线程都有本地休眠会话对象 并且在每个 InsertData 中我执行 beginTransaction 和提交 我面临
  • 如何将复选框绑定到 mvc3 中的视图模型

    我真的很难理解这个问题 我有一个 UserModel 和一个 UserRoleModel public class UserModel Required Display Name User name public string UserNa
  • 从 R Shiny renderTable 中排除行名称

    我正在使用 R Shiny 包中的 renderTable 函数 它返回一个包含行名称的表 理想情况下 我希望显示一个仅包含两列的表格 一列代表 月份 一列代表 值 我当前获得的输出包括行名称 我尝试了一些方法来排除行名称 但没有成功 有什
  • 如何告诉 clang 我的 LLVM 目标应该使用 16 位“int”?

    对于我的 PIC 后端 我希望 int 为 16 位 我 我的目标如何告诉 clang int 的大小应该是多少 仅定义 16 位寄存器似乎还不够 目前 clang O2 emit llvm target pic 转换 int foo in
  • 选项标签中的 html 标签

    看来 html 标签无法插入选项标签中 说
  • Hibernate SchemaFilterProvider获取Java实体名称

    我希望 Hibernate 禁用某些类在启动时进行验证 我的具体用例 spring jpa hibernate ddl auto validate Table name SAME TABLE public class Entity1 Col
  • OpenCV 2.1 托管 C++ (CLI/C++) 中的 cvSetMouseCallback

    我的类名称是 HandMotionRecognition 我在鼠标回调中调用 getColorPixel 方法 这是使用 Visual Studio 2010 的 OpenCV 项目类型是 c gt cli 处理鼠标事件的标准代码 除非我弄
  • 从 IBAction 以编程方式设置 UISwitch isOn 再次调用 IBAction

    我刚刚注意到设置 UISwitchisOn在其 IBAction 中会导致再次调用 IBAction 所以下面的代码 class ViewController UIViewController var count 0 IBOutlet we
  • 是否可以有一个从释放存储操作到不同线程中的存储的释放序列?

    我知道线程 2 中的释放存储操作和线程 1 中的获取加载操作之间会出现同步关系 即使该加载操作不直接读取线程 2 存储的值 前提是有一个释放存储操作和实际读取的存储之间的 释放顺序 只要 实际读取的存储与释放存储操作位于同一线程中 在修改顺
  • 在 Powershell 中运行 Start-Website 命令时出现“无法创建文件”错误

    目前我正在尝试运行这个 powershell 脚本 Param websiteName physicalPath import module WebAdministration website get website where objec
  • 在运行时清除日志文件:被另一个进程错误使用

    我在我的应用程序中使用 Serilog 框架 在我的应用程序中 当日志文件大小达到 2MB 时 我通过将现有文件从 file log 重命名为 file log bak 并创建新的 file log 来创建日志文件的备份 在运行时 我在读取
  • 如何检测 React Native 应用程序何时关闭(而不是暂停)?

    我到处都找过 但找不到这个问题的答案 我如何检测用户何时尝试关闭我的 React Native 应用程序 如进程正在运行 并且他们手动管理其应用程序并强制退出它 我想在发生这种情况时添加注销功能 但是找不到检测它的方法 AppState似乎
  • SQLCipher 与 DBFlow

    我曾经使用过 DBFlow 它在数据库方面非常简单 但我想问是否有一个很好的例子来将 SQLCipher 与 DBFlow 一起使用 我已点击此链接寻求帮助 Raizlabs DBFlow https github com Raizlabs