1. 加密/解密Android现有的数据库使用sqlCipher问题,怎么解决
针对sqlite数据库文件,进行加密。现有两种方案如下:
1.对数据库中的数据进行加密。
2.对数据库文件进行加密
1.uin怎么获取?
这个uin不是登录的帐号,而是属于内部的、程序界面上不可见的一个编号。
至于查看,最简单的方法就是登录web微信后,按F12打开网页调试工具,然后ctrl+F搜索“uin”,可以找到一串长长的URL,里面的uin就是当前登录的微信的uin。
还
有一种方法就是配置文件里,导出的微信目录下有几个cfg文件,这几个文件里有保存,不过是java的hashmap,怎么解析留给小伙伴们自己琢磨吧,
还有就是有朋友反应退出微信(后台运行不叫退出)或者注销微信后会清空这些配置信息,所以小伙伴们导出的时候记得在微信登陆状态下导出。博主自己鼓捣了一
个小程序来完成解析。
2.一个手机多个登录帐号怎么办(没有uin怎么办)
根
据博主那个解密的帖子,必须知道串号和uin。串号好说,配置中一般都有可以搞到,uin从配置中读取出来的时候只有当前登录的或者最后登录的,其他的几
个记录都没办法解密。网上某软件的解决方法是让用户一个一个登录后再导出。这个解决方法在某些情况下是不可能的,或者有时候根本不知道uin。
后来经过一个朋友的指点,博主终于发现了解决方法,可以从配置中秒读出来这个uin,这个方法暂时不透漏了,只是说明下这个异常情况。
3.串号和uin怎么都正确的怎么还是没办法解密
先
说说串号这个玩意,几个热心的朋友反馈了这个问题,经过博主测试发现不同的手机使用的不一定是IMEI,也可能是IMSI等等,而且串号也不一定是标准的
15位,可能是各种奇葩,比如输入*#06#出来的是一个,但是在微信程序里用的却是另一个非常奇葩的东西,这种情况多在双卡双待和山寨机中出现,经过严
格的测试,现在已经能做到精确识别,那几位热心的朋友也赠与了不同的代码表示鼓励。
4.计算出来了正确的key为什么无法打开数据库文件
微
信这个变态用的不是标准的sqlite数据库,那个帖子也提到了不是数据库加密,是文件的内容加密,其实是sqlcipher。官方上竟然还卖到
149$,不过倒是开放了源码,水平够高的可以自己尝试编译。google还能搜索到sqlcipher for
windows这个很好编译,不过博主不知是长相问题还是人品问题,编译出来的无法打开微信的数据库,后来改了这份代码才完成。
5.数据库文件内容是加密的,怎么还原
这
个是某些特殊情况下用到的,比如聊天记录删除了数据库中就没了,但是某个网友测试说数据库无法查询出来了,但是在文件中还是有残留的。这个情况我没测试
过,不过想想感觉有这个可能,就跟硬盘上删除了文件其实就是删除了文件的硬盘索引,内容还是残留在硬盘上可以还原一样,sqlite数据库删除的条目只是
抹去了索引,内容还存在这个文件中。
网上的都是直接打开读取,并没有解密还原这个文件成普通的sqlite数据库,使用sqlcipher
的导出方法也只是将可查询的内容导出。后来博主花了时间通读了内容加密的方式,做了一个小程序将加密的文件内容直接解密,不操作修改任何数据,非数据库转
换,直接数据流解密,完全还原出来了原始的未加密的数据库文件,大小不变,无内容损失,可以直接用sqlite admin等工具直接打开。
6.已经删除的聊天内容可以恢复么
通过上述第5的方式还原出原数据后,经测试可以恢复。sqlite的删除并不会从文件中彻底删掉,而是抹掉索引,所以可以通过扫描原始文件恢复。前提是没有重装过微信。。。
两种加密方式的优缺点,比较如下:
一、对数据库中的数据进行加密
优点:
1.实现数据加密快速,只需添加两个方法
一是:对明文数据进行加密返回密文数据
二是:对密文数据进行解密返回明文数据
2.程序无需进行太大变动,仅在对数据进行添加,修改,删除,查询时。针对指定的表字段进行修改进行加密,解密的字段即可。
不足:
1.由于对数据进行了加密。所以为了看到明文,必须密文进行解密。因此会增加处理器的消耗。因终端手机的处理能力有限,可能会出现处理数据缓慢的现象发生。
2.仅仅对数据进行了加密,还是可以看到数据表的sql语句,可能猜测到表的作用。另外,如果没有对一个表中的所有字段加密,则可以看没有加密的明文数据。
需要做的工作:
1.无需考虑平台差异性,qt,android,ios都能快速的实现。只需在每个平台上,使用各自的语言,实现同样的加密,解密算法即可。
2.需要对加密算法进行了解,选择一种加密算法,进行实现。
二、对数据库文件进行加密
优点:
1.对整个文件进行了加密,用户通过编辑器看不到任何有用的数据,用户使用sqlite browser软件也无法打开文件查看数据,保证了数据安全。
2.进行打开数据库时,使用程序sqlite3_key(db,”********”,8);即可对文件解密,对数据表的操作无需进行加密,采用明文即可。
不足:
1.需要修改sqlite的源代码,这个工作难度比较大。
2.需要对修改后的sqlite进行编译,需要对makefile有所了解,手动编写makefile文件,对源程序进行编译。因平台差异性,可能会造成某个平台无法编译生成动态链接库的可能。
3.需要对数据访问层代码进行修改,例如qt平台需要将以前对数据库操作使用的QSqlQuery类,更改为使用sqlite3.h文件中定义操作,对数据库操作。其他平台也一样,都要做这一步的修改。
4.在程序编译时,要加入使用加密的动态链接库(linux为共享库.so文件)windows平台最容易,只需将所使用的dll文件到应用程序中即可。其他平台需要实验,看如何引入库,如果编译。
需要做的工作:
1.修改sqlite源代码,追加对数据库文件进行加密的功能。
2.编译含有加密功能的程序源代码,生成各自平台需要使用的库文件。
3.将加密sqlite库文件引入各自平台中,修改数据库访问层代码。
4.进行程序的部署,测试。
三、数据库加密原理
目前主流的数据库都采用了各种安全措施,主要包括用户认证、访问控制、数据加密存储和数据库操作审计等措施。
用户认证:用户或者程序向数据库提供自己的有效身份证明,数据库鉴别用户的身份是否合法,只有合法的用户才能存取数据
库中的数据。用户认证是所有安全机制的前提,只有通过认证才能进行授权访问和审计。
访问控制:数据库管理系统为不同的用户分配不同的权限,保证用户只能进行授权的访问。目前,一些大型数据库(如Oracle 等)
都采用了基于角色的访问控制机制,即为用户授予不同的角色,如db—owner,security administrator 等,不同的角色允许对数据库执行不同的操作。
数据库加密:用户认证以及访问控制对访问数据库进行了控制,但攻击者可能会利用操作系统或数据库漏洞,或物理接触计算机,而直接接触数据库系统文件,从而可能绕过身份认证和存取控制而直接窃取或篡改数据库内容。对数据库中的数据进行加密是防范这类威胁的有效手段。
数据库操作审计:监视和记录用户对数据库所做的各种操作的安全机制,它记录并存储用户的操作,用于事后分析,以检查导致数据库现状的原因以及提供追踪攻击者的线索。数据库的备份与恢复:当数据库发生不可恢复的故障时,可以将数据库恢复到先前的某个一致性的状态。
四、SQLite 加密
由于SQLite 是开放源码的,并且在其源码中预留了加密接口,我们可以通过实现其预留的加密接口实现口令认证和数据库加密以完善其加密机制。
1.口令认证
SQLite 数据库文件是一个普通文本文件,对它的访问首先依赖于文件的访问控制。在此基础上,再增加进一步的口令认证,即在访问数据库时必须提供正确的口令,如果通过认证就可以对数据库执行创建、查询、修改、插入、删除和修改等操作;否则,不允许进一步的访问。
2. 微信本地数据库怎么破解,在线等,急!
使用sqlcipher打开EnMicroMsg.db文件
先运行sqlcipher,点击File 一> OpenDatabase 一> 选择桌面的那个EnMicroMsg.db文件,这时会出现这样一个对话框
这里是要求咱们输入密码,由于微信本地数据库是加密的,那么密码是什么呢,规则很简单
具体以下:
(手机IMEI + 微信uin )取MD5的前7位
手机的IMEI获取:手机拨号盘输入:*#06# ,你或者用android代码获取能够,怎么都行
微信uin的获取,我是经过网页版微信,我用的是win10的那个Edge浏览器,打开F12开发人员工具,选择网络,而后随便操做或者聊天,就能够看到了
而后网络打开在线md5加密:输入IMEI+wxuin,进行加密,选择32位小写的前七个字符串便可;
而后将这七位字符串输入到sqlcipher中,就顺利的打开了
接下来就能够愉快的查看表结构了,还能够选择Browse Data查看数据,也能够选择Execute SQL执行sql语句了。
到这里就已经完全打开了微信手机本地的数据库了,
3. 适合手机的加密软件都有哪些
一、手机加密器
手机加密器
手机加密器,创建管理公钥与私钥,并可加密解密文本与各类型文件。这是一款基于OpenPGP的安卓客户端,基于AGP做了针对性调整,目的是提供更好的用户体验和扩展服务。防监听手机,加密通话,手机语音通话加密器,加密短信,加密邮件。
二、图片加密
图片加密
图片加密是一款对指定图片进行加密的软件工具,图片加密只有在输入正确密码的时候才可以查看加密的图片,同时也可以实现图片的批量加密和图片的批量解密,从而保护你相片里的秘密,只属于你一个人可见。图片加密,保护你的秘密。
三、手机文件加密
手机文件加密
手机文件加密是一个安卓用户文件安全全能保镖。时时保护手机上任何文件、数据的安全。
加密操作
1.选中需要加密的文件或者文件夹,可以多选。
2.选中之后请点击加密按钮进行加密。
3.加密过程中将自动转入后台进行加密,无需用户等待加密过程。
解密操作
1.选中需要解密的文件或者文件夹,可以多选。
2.选中之后请点击解密按钮进行解密。
3.解密过程中将自动转入后台进行解密,无需用户等待解密过程。
四、手机加密大师
手机加密大师
手机加密大师是针对安卓手机开发的加密类软件,能对手机中的任何程序进行保护和对手机上的任何文件进行加密,对个人隐私保护有不可替代的作用。只需要简单的几步操作,就可以让秘密属于自己。
功能介绍
程序保护:可以保护手机上的任何程序,有效防止他人通过程序对数据进行查看,或者恶意破坏用户数据。
文件加密:可以对手机上的任何文件进行加密,比如私密图片,密码,视频等,让秘密真正属于自己。
五、资料夹加密
资料夹加密
资料夹加密是一款可以加密个人信息,信用卡,网址书签,联系人,银行账户等重要信息的软件,还可以复制,备份和还原数据库,更可以在电脑和手机间同步数据库。让你不再担心重要信息的丢失。
六、隐私保护大师
隐私保护大师
隐私保护大师是针对手机隐私安全开发的专业APP,可实现对手机隐私信息的挖掘、展示和彻底消除,使其无法被恢复窃取,目前主要应用于安卓手机系统。
功能介绍
1、扫描并展示手机中的各类隐患数据,包括手机中已删除的数据(短信/通话/QQ记录)、敏感词汇(验证码/银行/自定义关键词)、浏览历史(网络/QQ浏览器)、地理定位、WiFi连接记录等隐患信息。
2、彻底消除手机隐患信息,包括两种消除方式,一是对手机中的未删数据可进行选择性消除,二是对手机中的已删隐患数据进行一键彻底粉碎消除,消除后的数据无法被恢复窃取。
3、可生成隐私报告,包括“最近5天手机APP使用情况统计”,以及根据软件运行次数、上传/下载流量判断出的软件安全等级,还有手机一天内重要通信情况的报告——“一天行踪”,以及手机中所有APP隐私权限的分析报告。
七、隐私管理大师
隐私管理大师
隐私管理大师是一款隐私管理软件,更简单那的说就是可以给你的短信、通话记录、图片、视频等等一系列的东西加密,即使你的手机给熊孩子玩也不怕他弄坏。
最简单易用的专业隐私安全管理软件,可以对手机的:通话、短信、图片、视频、软件、文件、记事本等进行安全加密管理,防止他人操作和查看,保护您的隐私。
八、隐私文件保护
隐私文件保护
隐私文件保护,安全维护您的个人隐私,也可以对您的文件进行加密管理,保护您的文件安全。还能根据您的要求定制不同程度的加密程度,方便安全又快捷。
4. 数据库加密的方式有哪几种
数据库加密的方式有多种,不同场景下仍在使用的数据库加密技术主要有:前置代理加密、应用系统加密、文件系统加密、后置代理加密、表空间加密和磁盘加密等,这些你找安策工程师帮你,都是可以做到的网络里面也有详细介绍。
5. 对微信的聊天记录数据库文件EnMicroMsg.db.bak的加密方式有哪些
一般都是第三方软件实现的加密。
使用注意事项:
第一可能要求手机要有ROOT权限;
第二可能在使用第三方软件的时候导致账号的丢失;
不建议进行ROOT,保护自己的隐私及财产的安全。