使用 sqlcipher.exe 可以在输入密码后,查看加密数据库的内容。 但是要编码查询数据库的内容,还要另寻方法。...(相关的工具和库在我的百度网盘中) 使用sqlcipher windows 命令工具 注意 使用的工具也分版本,要与加密数据库的版本对应起来,否则查看不到表 下载地址: 对应2.x http://download.csdn.net...创建加密数据库 $ sqlcipher encrypted.db SQLCipher version 3.8.4.3 2014-04-03 16:53:12 Enter “.help” for instructions...打开加密数据库 $ sqlcipher encrypted.db SQLCipher version 3.8.4.3 2014-04-03 16:53:12 Enter “.help” for instructions...加密已有的数据库 $ sqlcipher banklist.sqlite3 SQLCipher version 3.8.4.3 2014-04-03 16:53:12 Enter “.help” for
转载请以链接形式标明出处: 本文出自:103style的博客 build android-database-sqlcipher 介绍 android-database-sqlcipher 用于...Android SQLite 数据库的加密。...sqlcipher开发维护者官网:https://www.zetetic.net/sqlcipher/ github开源项目地址:android-database-sqlcipher 以下是笔者基于...下载链接 使用方法 官方介绍:https://www.zetetic.net/sqlcipher/sqlcipher-for-android/ 添加 aar 到 工程 libs 目录下,然后添加以下 android...: java.lang.NoSuchFieldError 这是因为没有添加以下混淆配置导致的 -keep class net.sqlcipher.** { *; } -keep class net.sqlcipher.database
SQLCipher采用的是数据库文件整体加密的策略,使用256-bit AES加密,从算法角度来看是相当强悍了。于是,加密后的文件看起来及时这样了: ? 完全是天书嘛,ok,可以洗洗睡了。...下面我们就来分析一下SQLCipher的密钥和加密过程。...根据官方的描述,SQLCipher是整体加密方案: Transparent – An application doesn’t require any special knowledge of the underlying...拿到密码后有个偷懒的方法可以直接打开加密数据库:使用SQLiteManager,它支持SQLCipher加密的数据库,会提示输入数据库密码,不需要自己写程序了,而且浏览数据也很方便。 ?...因此,建议除了以下情况,不要使用SQLCipher之类的本地数据库加密: 非敏感数据,爱咋用咋用 用户自己的数据,可以采用用户口令、指纹等方式直接或间接保护,因为这种情况下key其实是随用户走的,可以做到
WCDB C函数形参列表与汇编寄存器的对应关系 0x00 准备工作 查看WCDB所用的SQLite的加密方式,直接在WCDB的README里写了: Encryption Support: WCDB...supports database encryption via SQLCipher....用sqlitebrowser打开这个db文件,发现是SQLCipher加密,要输入密码。...分析一下表,发现文本内容存在BAK_0_TEXT,媒体内容存在BAK_0_MEDIA,以偏移量记录某条消息,简单查看一下这2个文件,都是写二进制数据,看来还用了某种加密方式。...0x03 Todo 静态分析WeChat.app,获取打开两个加密文件的方法。
/lib目录下) 编译SqlCipher 将上一步生成的两个库文件复制到SqlCipher主目录下 管理员权限运行C:\mingw\msys\1.0\msys.bat批处理文件,进入msys shell.../crypto.c> /*** SQLCIPHER ADDITION ***/ #include sqlcipher/crypto_cc.c> /*** SQLCIPHER ADDITION...***/ #include sqlcipher/crypto_impl.c> /*** SQLCIPHER ADDITION ***/ #include sqlcipher/crypto_openssl.c...> /*** SQLCIPHER ADDITION ***/ #include sqlcipher/pager.c> /*** SQLCIPHER ADDITION ***/ 运行以下命令进行配置.../sqlcipher-master/libcrypto.dll -L/d/MySoftware/sqlcipher/sqlcipher-master/ -static-libgcc" LDFLAGS="
SQLCipher是一个在SQLite基础之上进行扩展的开源数据库,它主要是在SQLite的基础之上增加了数据加密功能,如果我们在项目中使用它来存储数据的话,就可以大大提高程序的安全性。...SQLCipher支持很多种不同的平台,这里我们要学习的自然是Android中SQLCipher的用法了。...下面我们就开始吧,首先要把Android项目所依赖的SQLCipher工具包下载下来,下载地址是: https://s3.amazonaws.com/sqlcipher/SQLCipher+for+Android...话说写到这里,我们都一直还没体验一下SQLCipher加密后的效果呢,现在就来看一看吧,首先通过命令行的方式来访问demo.db这个数据库文件: adb shell cd /data/data/com.example.sqlciphertest...从图中可以看出,当执行.table命令的时候被拒绝了,原因是数据库文件已加密。 除了使用命令行的方式,我们还可以尝试使用Root Explorer来打开数据库文件,结果如下图所示: ?
目前最好且唯一的方案就是SqlCipher对sqlite3整体加密,微信也用的它。开源,且支持很多平台。...目前流行的是一款开源的SQLite加密工具 SQLCipher ,微信也在使用。 SQLCipher是完全开源的,其代码托管在github上。...SQLCipher使用256-bit AES加密,由于其基于免费版的SQLite,主要的加密接口和SQLite是相同的,也增加了一些自己的接口。它有一个缺点就是使用该库之后会导致Apk会变大6M左右。...下面就是具体介绍SQLCipher的使用方法。 SQLCipher使用 SQLCipher是完全开源的软件,提供256-bit AES加密。...github地址 导入SQLCipher加密库 implementation 'net.zetetic:android-database-sqlcipher:4.2.0' 替换原生的包 android.database.Cursor
WCDB(WeChat Database)项目简介 WCDB是一个高效、完整、易用的移动数据库框架,基于SQLCipher,支持iOS, macOS和Android。...加密:WCDB提供基于SQLCipher的数据库加密。 损坏修复: WCDB内建了Repair Kit用于修复损坏的数据库。 反注入: WCDB内建了对SQL注入的保护。...---- WCDB for Android 基本功能 基于SQLCipher的数据库加密 使用连接池实现并发读写 内建 Repair Kit 可用于修复损坏数据库 针对占用空间大小优化的数据库备份/恢复功能
另外我们需要安装加密包 Install-Package SQLitePCLRaw.bundle_e_sqlcipher· Dapper.Crud 个人比较喜欢Dapper,不喜欢的小伙伴可以使用自己的...这里有个需要注意的点: “在设置密码创建数据库后,需要使用ORM执行sql创建表,如果是空数据库,是未加密的··可以直接打开。原因暂未可知。...希望知道的大佬能告知 ” 我们使用Navicat for SQLite 打开,如果出现以下弹窗,就说明加密成功了!...还是x86复制win-x64\native 下的e_sqlcipher.dll 打开Navicat 的安装目录,将刚刚复制的e_sqlcipher.dll复制到该目录下。...然后将复制的e_sqlcipher.dll改名成 sqlite3.dll 替换掉原来的sqlite3.dll 设置密码 在数据库连接右键编辑连接-->高级-->设置数据库文件位置-->勾选已加密-->设置密码
当需要加密时,有许多问题超出了本指南的范围,比如处理用于加密或代码混淆的密钥,所以目前建议,在开发处理数据的应用,数据对业务有巨大影响时咨询专家。...请参考“4.5.3.6 [参考] 加密 SQLite 数据库(Android SQLCipher)”,这里介绍加密数据库的库。...4.5.3.6 [参考] 加密 SQLite 数据库(Android SQLCipher) SQLCipher是为数据库提供透明 256 位 AES 加密的 SQLite 扩展。...在移动世界中,SQLCipher广泛用于诺基亚/ QT,苹果的 iOS。 Android 项目的SQLCipher旨在支持 Android 环境中的 SQLite 数据库的标准集成加密。...通过为SQLCipher创建标准 SQLite 的 API,开发人员可以使用加密的数据库和平常一样的编码。
WCDB WCDB是一个高效、完整、易用的移动数据库框架,基于SQLCipher,支持iOS, macOS和Android。...加密:WCDB提供基于SQLCipher的数据库加密。 损坏修复: WCDB内建了Repair Kit用于修复损坏的数据库。 反注入: WCDB内建了对SQL注入的保护。...接口请参考API reference WCDB for Android 基本功能 基于SQLCipher的数据库加密 使用连接池实现并发读写 内建 Repair Kit 可用于修复损坏数据库 针对占用空间大小优化的数据库备份...从源码编译 编译 WCDB 你可以使用预编译的依赖库(OpenSSL crypto 和 SQLCipher)来编译 WCDB for Android, 使用 Gradle 或 Android Studio
加密接口 WCDB 使用了 SQLCipher 的 C 层库,但没有直接使用 SQLCipher Android 的封装层。...SQLCipher Android 封装层中很多设置需要手写 PRAGMA 语句实现,比如设置 KDF 迭代次数(兼容老版本 SQLCipher DB)、设置 Page Size 等操作。...开发者往往必须仔细查阅 SQLCipher 的文档来了解这些细节。...WCDB 对这个部分做了改进,封装了 SQLiteCipherSpec 用于设置加密参数,设置好了传给 SQLiteDatabase 工厂方法就好了,不需要考虑 PRAGMA 语法和调用顺序。...数据迁移 SQLCipher 提供了 sqlcipher_export SQL 函数用于导出数据到挂载的另一个 DB,可以用于数据迁移。
DENGTA_META.xml 1、获取方式: 一) 手机Root后,使用RE文件浏览器等文件浏览器复制出来, 二) 使用手机自带的备份功能,将微信相关信息完整的保存下来 2、数据库密码算法: 微信本地数据库的加密规则...IMEI码(若微信获取不到IMEI码,则使用默认的1234567890ABCDEF) 获取当前登录微信账号的uin(存储在sp里面) 拼接IMEI和uin 将拼接完的字符串进行32位md5加密...截取加密后的字符串的前七位(字母必须为小写) 注:EnMicroMsg.db数据库文件,使用sqlcipher进行AES加密,CDMA手机使用MEID,双卡双待手机使用IMEI1 3、数据库连接...https://sqlitestudio.pl/files/sqlitestudio3/complete/win32/SQLiteStudio-3.2.1.zip CTRL+O 添加数据库, 数据类型选择SQLCipher
SQLCipher - SQLCipher使用256位AES加密,SQLCipher分享收费版本和免费版本。官方教程,加密你的SQLite - 各种sqlite数据库加密介绍 。
解密聊天记录数据库 ---- 微信6.2.5使用sqlcipher进行AES加密,因此我们要得到密钥,根据编译的信息,可以得知微信使用 key=md5(IMEI+uin) | cut -c -7 ,...解密微信聊天数据库就是简单的一行代码,(注意sqlcipher新版本(3.x)默认不向下兼容,需要使用,cipher_use_hmac 是兼容1.1.x,kdf_iter 是兼容2.1.x的)。...12345 sqlcipher EnMicroMsg.db 'PRAGMA key = "key"; PRAGMA cipher_use_hmac = off; PRAGMA kdf_iter = 4000...; ATTACH DATABASE "decrypted_database.db" AS decrypted_database KEY "";SELECT sqlcipher_export("decrypted_database...");DETACH DATABASE decrypted_database;' 或者 sqlcipher EnMicroMsg.db 'PRAGMA key = "key"; PRAGMA cipher_migrate
ab文件一般分两种,一种是没有加密,这种文件前面有24字节的文件头,文件头包含none标志,文件头之后就是数据;一种是加密的备份文件,它的文件头就比较复杂了,文件头包含AES-256标志。...Android backup extractor可以将ab格式转换为我们熟悉的tar格式,最重要的是它同时支持没有加密和数据加密的adb备份。...com.example.mybackup com.example.zi 其中mybackup里提供了一个经过sqlcipher加密过的BOOKS.db.该数据库里存储了flag,只要解密该数据库之后即可获取...= this.getReadableDatabase(this.k); } getSign为自己写的获取签名,然后计算"SHA1",直接利用jeb反编译结果编写代码即可获取key,然后选择尝试正确的sqlcipher...autoincrement, book_name t ext, book_author text); sqlite> select * from books_table 或者利用backup的apk中提供的sqlcipher
支持加密DB。 Android 端微信客户端使用的是加密 SQLCipher DB,加密会改变信息 的排布,往往对密文一个字节的改动就能使解密后一大片数据变得面目全非。...由于直接跑在SQLite上层,所以天然 就支持加密SQLCipher,不需要额外处理。 (图:dump输出样例) 这个方案不需要任何准备,只有坏DB的用户要花好几分钟跑恢复,大部分用户是不感知的。...DB初始化的问题除了文件头和sqlite_master完整性外,还有加密。SQLCipher加密数据库,对应的恢复逻辑还需要加上 解密逻辑。...按照SQLCipher的实现,加密DB 是按page 进行包括头部的完整加密,所用的密钥是根据用户输入的原始密码和 创建DB 时随机生成的 salt 运算后得出的。...加密 SQLCipher 情况较为复杂,幸好SQLCipher 加密部分可以单独抽出,直接套用其解密逻辑。 实现了上面的逻辑,就能读出DB的数据进行恢复了,但还有一个小插曲。
Android 上的加密和进化 当 iOS 在架构上发力的时候,Android 却遇到了别的问题。...Root 了之后,用户和恶意程序可以随意读取任意 APP 的数据,为了数据安全方面的考虑,Android 决定引入加密数据库 SQLCipher。...SQLCipher 加密 SQLCipher 使用 AES-256 进行全数据库加密,包括文件头以及 Journal/WAL,这能满足微信的需要。...有没办法加密与新特性兼而有之呢? 为了这个目标,Android 也开始自立门户,第一个目标是将 SQLCipher 和最新 Android 框架结合起来。...我们将 SQLCipher 与 Android 源码结合在一起稍作改动,同时加上设置加密的接口,同时获得了 Android SQLite 最新特性以及 SQLCipher 带来的固定 SQLite 版本与加密的优势
利用SQLChiper对Android SQLite数据库加密 前言: 上篇文章讲了Android studio+SQLCipher加密SQLite数据库的几个坑,跳过这几个坑,那么SQLCipher...的前提就处理完成,本片文章接着讲如何使用SQLCiper加密数据库。...; import net.sqlcipher.database.SQLiteOpenHelper; public class DBCipherHelper extends SQLiteOpenHelper...android.content.ContentValues; import android.content.Context; import android.util.Log; import net.sqlcipher.Cursor...; import net.sqlcipher.SQLException; import net.sqlcipher.database.SQLiteDatabase; import java.util.ArrayList
Android 上的加密和进化 ---- 当 iOS 在架构上发力的时候,Android 却遇到了别的问题。...Root 了之后,用户和恶意程序可以随意读取任意 APP 的数据,为了数据安全方面的考虑,Android 决定引入加密数据库 SQLCipher。...SQLCipher 加密 SQLCipher 使用 AES-256 进行全数据库加密,包括文件头以及 Journal/WAL,这能满足微信的需要。...有没办法加密与新特性兼而有之呢? 为了这个目标,Android 也开始自立门户,第一个目标是将 SQLCipher 和最新 Android 框架结合起来。...我们将 SQLCipher 与 Android 源码结合在一起稍作改动,同时加上设置加密的接口,同时获得了 Android SQLite 最新特性以及 SQLCipher 带来的固定 SQLite 版本与加密的优势
领取专属 10元无门槛券
手把手带您无忧上云