美文网首页
Android换用可加密安全性更好的SQLite数据库

Android换用可加密安全性更好的SQLite数据库

作者: kongzue | 来源:发表于2019-06-17 15:45 被阅读0次

    SQLCipher 相比于原生 SQLite,可选择 db 加密,安全性更高,易用性基本和原生 SQLite 相当,是原生 SQLite 不错的替代品。

    SQLCipher使用 256-bit AES 加密,由于其基于免费版的 SQLite,主要的加密接口和 SQLite 是相同的,也增加了一些自己的接口,唯一缺点就是使用该库之后会导致 APK 会变大6M左右。

    引入

    首先前往 Github:
    https://github.com/sqlcipher/android-database-sqlcipher

    进入其 Maven 仓库可以查看到最新的版本:
    https://search.maven.org/artifact/net.zetetic/android-database-sqlcipher/4.2.0/jar

    implementation 'net.zetetic:android-database-sqlcipher:4.2.0'
    

    引入包后,其使用方式与原生 SQLite 基本一致,先构建 SqlliteHelper,然后获取 SQLiteDatabase,最后进行一系列的操作即可。

    第一次使用

    先注意初始化,在 Application 里初始化执行:

    SQLiteDatabase.loadLibs(this);
    

    之后是获取数据库,可以传入密钥作为参数,对数据库加密:

    String key = "你的密钥";
    sqlliteHelper.getWritableDatabase(key);
    

    之后所有操作和普通原生 SQLite 基本一致,需要请百度,这里不再赘述。

    已有用原生 SQLite

    首先还是要注意初始化,这大概是和原生 SQLite 的唯一区别,在 Application 里初始化执行:

    SQLiteDatabase.loadLibs(this);
    

    之后将项目中的:

    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    

    全部替换为:

    import net.sqlcipher.Cursor;
    import net.sqlcipher.database.SQLiteDatabase;
    import net.sqlcipher.database.SQLiteOpenHelper;
    

    之后是获取数据库,可以传入密钥作为参数,对数据库加密:

    String key = "你的密钥";
    sqlliteHelper.getWritableDatabase(key);
    

    参考资料

    https://blog.csdn.net/qq_19711823/article/details/50974467

    相关文章

      网友评论

          本文标题:Android换用可加密安全性更好的SQLite数据库

          本文链接:https://www.haomeiwen.com/subject/zqgafctx.html