当前位置:首页 » 数据仓库 » android加密数据库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

android加密数据库

发布时间: 2022-09-04 01:24:08

Ⅰ 加密/解密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的删除并不会从文件中彻底删掉,而是抹掉索引,所以可以通过扫描原始文件恢复。前提是没有重装过微信。。。

Ⅱ 问一下,给android加密哪些加密方式最好最有效

朋友你好,很高兴为你解决问题。

android加密的最佳加密方式可采用安卓应用APK加密工具,一键集成DEX加密、SO文件加密、DLL文件加密、内存保护、反调试、防二次打包等功能。

可以有效避免核心代码被破解,请求协议被伪造,被植入恶意代码后重打包等诸多安全风 险!

有效五个杜绝:

• 杜绝APP包被植入病毒或广 告,窃 取用户隐 私信息,推送垃 圾广 告;

• 维持应用原有的纯净度和企业信誉度。

• 杜绝竞 争对手逆向分析应用核心技术,窃 取企业劳动成果;

• 杜绝攻 击者挖掘应用漏洞,发起恶意攻 击行为。

• 杜绝应用广 告代码被删除,影响经 济收 益;

• 杜绝应用广 告代码被篡改,广 告收 益被攻 击者窃取。

希望以上解答能够帮助到你,参考资料:http://www.kiwisec.com/proct/apkEncrypt.shtml。

祝:开心每一天。

Ⅲ Android 开发,如何连接带有pragma key加密的SQLlite数据库

[html]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="使用SQLCipher对数据库进行加密"
android:layout_centerHorizontal="true"

Ⅳ 在android中如何打开加密过的sqlite数据库

在ANDROID中,应用的数据是私有的,你要得到其他应用的数据,可以通过ContentProvider来实现。

Ⅳ 求助关于sqlcipher给android数据库加密

你想对储存在data/data目录下的那个数据库文件进行加密,这样加密肯定可以,但是你的程序同样也不好读取到。简而言之这种方法不好不适用。
你想让数据库里面的储存的东西让别人不知道,只要对储存的内容进行加密就行了 ,应该会有相应的包,我没用过你可以网络一下,当然啦,也不需要用包,包里面也是代码,所以你也可以选择自己写,最简单的加密方法就是把每个字符都移动多少位(一共有65535个字符)。比如你想存一个字符串“abc” 就把a,b,c移动10000位 取的时候再把它移回来。
我用一个字符做实例 char c= 'a'; char cc = 'a'+10000; System.out.print( "c="+c+" cc="+cc+" cc-10000="+(cc-10000) ); 输出结果 c=a cc=? cc-10000=97 这个97就是对应的ascii码 就是这样实现加密的!

Ⅵ 如何在手机上搭建加密数据库

用SQLCipher进行数据库加密。
SQLite目前已经是比较流行的数据存储操作的API了。Android和iOS系统提供的API中操作数据库默认均采用了SQLite方案。而SQLCipher是基于SQLite的加密数据库存取方案,集成相对比较快捷而且透明,在一定程度上保证了数据的安全。
代码设置:
如果你用的是系统sqlite3的API,则代码基本不用变,因为SQLCipher是基于系统的sqlite3API扩展的;
如果你用的是FMDB,更无需担心,因为FMDB是封装的系统sqlite3API;
唯一需要做的,就是初始化打开数据库文件sqlite3_open之后,紧跟着执行sqlite3_key设置数据库加密的密钥,于是sqlcipher集成工作就完成了。如果你用的是FMDB,可以直接用setKey方法;如果不是,也可以去FMDataBase.m源码中拷贝这个方法的逻辑,方便调用

Ⅶ android 数据库加密方式有哪些

对称加密,非对称加密

Ⅷ android数据加密

存储的时候加密,自己程序使用的时候解密,不过会影响性能

Ⅸ android编程中,怎样更改sqlcipher加密数据库的密码呢

貌似不是商用加密算法,应该是自己定义的
解密很麻烦的,需要大量样本,不然就得猜了
给你点提示,你这个算法密文长度是明文长度的两倍,应该是由明文ASCII码运算得出的

Ⅹ android sqlite数据库怎么加密

按我的理解,你可以做一个加密解密的函数,数据存进数据库之前都加密一下,取出来的时候再解密,这样就算别人看到了数据库里的数据,也完全不知道是什么意思 查看原帖>>