当前位置: 首页 > news >正文

网站建设书籍资料购物商城网站开发目的文档

网站建设书籍资料,购物商城网站开发目的文档,网站功能调研,淘宝找做网站目录 SQLCipherSQLiteCrypt其它 SQLCipher SQLCipher 是 SQLite 数据库的的开源扩展#xff0c;使用了 256 位 AES 加密#xff0c;支持跨平台、零配置、数据100%加密、加密开销低至 5 -15%、占用空间小、性能出色等优点#xff0c;因此非常适合保护嵌入式应用程序数据库使用了 256 位 AES 加密支持跨平台、零配置、数据100%加密、加密开销低至 5 -15%、占用空间小、性能出色等优点因此非常适合保护嵌入式应用程序数据库并且非常适合移动开发。 关于 SQLCipher 的使用官网提供了 SQLiteDatabase 的接入案例鉴于官网已有 SQLiteDatabase 案例这里则不再重复赘述本文改为在 Room 中集成。 打开 app 目录下的 build.gradle 文件添加插件和依赖 // 用到 kapt 必须添加该插件 apply plugin: kotlin-kaptdependencies {// roomkapt(androidx.room:room-compiler:2.4.2)implementation androidx.room:room-ktx:2.4.2implementation(androidx.room:room-rxjava3:2.4.2)// sqlcipher 数据库数据加密implementation net.zetetic:sqlcipher-android:4.5.6aarimplementation androidx.sqlite:sqlite:2.2.0 }新建一个继承 RoomDatabase() 的类设置 SQLiteOpenHelper 。 Database(entities [Classes::class, Students::class], version 2, exportSchema false) abstract class SchoolDatabase : RoomDatabase() {companion object {var db: SchoolDatabase ? null// 单例模式的双重检查锁fun getDataBase(context: Context) : SchoolDatabase{if (db null) {synchronized(SchoolDatabase::class.java){if (db null){// 使用 SQLCipher 加密val factory SupportOpenHelperFactory(database password.toByteArray())db Room.databaseBuilder(context.applicationContext, SchoolDatabase::class.java, your database name).openHelperFactory(factory).build()}}}return db as SchoolDatabase;}} }编写完成数据库的增删改查相关代码后运行项目并完成对数据写入操作。 使用 Android Studio 的 Device Explorer 功能打开 data/data/your package name/database/ 文件夹就可以看到应用的数据库。 鼠标右键点击 your package name 下创建的数据库选择 Save AS ... 保存到桌面使用 SQLiteStudio 数据库工具打开就会有这样的提示无法添加数据库 C:/Users/XXX/Desktop/your database filefile is not a database 因为我们已经对数据库进行了加密是不能直接对其进行访问的。需要更换数据类型为 SQLCipher 并输入在代码中设置的数据库密码点击 ok 后就可以对数据库进行访问了。 如果未使用 SQLCipher 对数据库进行加密数据库是可以直接访问的。 SQLCipher 除了能支持 SQLite、Room 之外还支持 GreeDAO 数据库。不支持 ObjectDB。 下载 Demo 参考文档 SQLCipher 官网 在 Android 中集成 SQLCipher SQLiteCrypt SQLiteCrypt 为 SQLite 数据库添加了透明的 AES 256 加密支持。SQLiteCrypt 非常快它只是使 SQLite 速度减慢几个百分点因此您的用户甚至不会注意到它的存在。 SQLiteCrypt 也是一个可以免费使用的 SQLite 加密库在它的官网下方提供了 Linux、Ubuntu、Window、.Net、Android 等版本的 demoSQLiteCrypt 并没有像 SQLCipher 那样提供了一个与 Room 库兼容的版本。Room 库是基于 Android 的SQLite API构建的而 SQLiteCrypt 是一个 SQLite 的 C 扩展它需要使用其自带的 API 来打开和操作加密的数据库。 使用 SQLiteCrypt 需要引入 .so 库以及 .aar 文件。 dependencies {implementation(name:android-database-sqlitecrypt-release, ext:aar) }使用时用的是 com.sqlitecrypt.database.SQLiteDatabase 进行创建数据库 public void initDb() {File dbFile this.getDatabasePath(test.db);String dbPath dbFile.getPath();if(!dbFile.exists()) {new File(dbFile.getParent()).mkdirs();}// 第二个参数为数据库的密码可不填即不设置加密使用 SQLiteDatabase.changePassword(password) 加密SQLiteDatabase db SQLiteDatabase.openOrCreateDatabase(dbPath, , null);// 设置数据库的访问密码为 abc123db.changePassword(abc123);// 查询数据库里 student 的表db.rawQuery(SELECT * FROM student, null);// 插入一条数据db.execSQL(insert into student(id,name) VALUES(1, Sparta););// 删除 student 表中 id 1 的数据db.delete(student, id1, null);// 关闭数据库db.close(); }com.sqlitecrypt.database.SQLiteDatabase 与 android.database.sqlite.SQLiteDatabase 的用法基本一致它们都有 execSQL、rawQuery 的方法只要有点数据库基础知识就可以写出可执行的 SQL 语句。 其它 上面提到的数据库加密框架都是可以免费使用当然他们也有付费版本。 我在写这篇博客之前去了解了一些数据库加密的技术有的博主提到一种方式写入数据库前进行数据加密取出来时解密。 这种方式看着是可行的但 不可取 数据加密一般都是将一段字符转译为其它字符例如byte、String、二进制。众所周知的 MD5知道吧它是把字符转换成了16、32位长度的字符。不考虑解密假设一个表有10个字段这时候需要插入一条数据那么就有 9 ~ 10 个字段需要调用 MD5 加密算法加密一次这才只是10个字段如果一个表有几十个字段呢 如果这样搞相较于上述两个加密方式来说这种方式时间复杂度、空间复杂度都处于最差劲那一组不仅如此还增加了维护成本。 参考文档 SQLiteCrypt 官网
http://www.hkea.cn/news/14265418/

相关文章:

  • 网站设计与实现菏泽炫佑网站建设
  • 网站建设方案 文库网站首页怎样排版
  • 安居客网站怎么做如何看网站的流量
  • 建网站服务开发软件需要哪些技术
  • 建设信用卡银行积分商城网站建设网站需要的资金清单
  • 网站建设好了还要收取维护费站长之家域名解析
  • 在别人的网站做域名跳转辛集网站建设
  • 职业院校专题建设网站他人盗用公司资料建设网站怎么处理
  • 道客网站建设推广ps设计素材网站
  • 有没有网站做字体变形美食地图网站开发
  • 负责网站建设推广合肥网站建设哪里好
  • ps海报制作教程步骤的网站北京定制网页
  • wap网站 手机网站公司网站建设付款分录
  • 自己怎么做新闻开头视频网站海珠区住房和建设水务局网站
  • 免费网站站长学软件开发好还是网站开发好
  • 网站恶意点击软件做销售网站的公司哪家最好
  • 做pos机网站有必要么电子商务网站购物流程图
  • 做一个自适应网站多少钱工程建设游戏
  • 快捷做网站wordpress虚拟主机如何安装
  • 做传媒网站公司一般购物网站有哪些模块
  • 如何知道网站什么时候做的建筑做文本网站
  • 陕西网站seo6黄页网站建设
  • 网站建设项目软件开发招标文件杭州 高端网站建设
  • 为什么做网站的会弄友情链接网站建设硬件条件
  • 怎样建立个人的网站泉州建设部网站
  • 河南省百城建设提质网站微信h5
  • 如何让自己网站排名提高手机在线做ppt的网站
  • 360网站空间做商业地产常用的网站
  • 网站流量超了网络广告的优势有哪些
  • 网站举报能不能查到举报人做网站小程序的客户是怎么找的