objectBox 是否支持数据加密?

does objectBox support data encryption?

我想在我的项目中使用objectbox,我想从dbflow迁移到objectBox,dbflow支持加密,objectBox支持加密吗?

ObjectBox 当前依赖 Android 安全功能,包括沙盒和加密存储(取决于 Android 版本)。应在

中跟踪其他工作

这是 greenrobot 对这个问题的最后状态

没有内置的加密支持。

有一个支持它的功能请求。我们欢迎您的建议。 https://github.com/objectbox/objectbox-java/issues/8

因此,为了代替 objectBox 的官方数据库加密支持,我们已经使用 属性 转换器进行了字段加密。

我们对字符串字段实施了 AES-256 加密。

到目前为止,性能测试显示如下:

  • 无加密,1000 个对象(13 个字段/对象)写入 ~ 2740ms
  • 已加密,1000 个对象(13 个字段,6 个已加密)写入 ~ 6434 毫秒
  • 无加密,读取 1000 个对象(13 个字段/对象)~ 58 毫秒
  • 加密,1000 个对象(13 个字段,6 个加密)写入 ~ 70 毫秒

检查这个方便的 AES 库:https://github.com/scottyab/AESCrypt-Android

属性 转换器的示例 class

class EncryptionConverter : PropertyConverter<String, String> {

    override fun convertToDatabaseValue(entityProperty: String): String {
        return AESUtil.encrypt("YOUR_SUPER_SECURE_KEY" , entityProperty)
    }

    override fun convertToEntityProperty(databaseValue: String?): String {
        return AESUtil.decrypt("YOUR_SUPER_SECURE_KEY" , databaseValue)
    }
}

您在实体 class 中的字段看起来像这样

@Convert(converter = EncryptionConverter::class, dbType = String::class)
    var username : String = ""

另请记住,通过字段加密,您将放弃部分字段查找功能