objectBox是否支持数据加密?

时间:2019-01-14 09:26:11

标签: java android encryption objectbox

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

3 个答案:

答案 0 :(得分:0)

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

这是greenrobot针对此问题的最后状态

答案 1 :(得分:0)

没有内置的加密支持。

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

答案 2 :(得分:0)

因此,代替了ObjectBox不提供任何官方数据库加密支持的方法,我们使用了属性转换器来进行字段加密。

我们已经在字符串字段上实现了AES-256加密。

到目前为止,性能测试显示以下内容:

  • 不加密,写入1000个对象(13个字段/对象)〜2740ms
  • 经过加密的1000个对象(13个字段,6个加密的)写入〜6434ms
  • 不加密,读取1000个对象(13个字段/对象)〜58ms
  • 已加密,1000个对象(13个字段,已加密6个)写入〜70ms

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

属性转换器类的示例

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)
    }
}

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

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

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