android通讯录加密,一种手机通讯录加解密方式
2013年9月27日 星期五 晴
我总是被接到一些无头无尾的邮件,没有人告诉我上下文,然后就让我去做什么项目了。
这个D项目也不例外,去和客户谈的时候,我一无所知。见面聊了才知道,先前别的部门做了,我们部门移植了一下,客户是来让我们改bug的。
客户需求:
1. 最根本需求:客户有自己的内部通讯录,员工可以看到通讯录里人的名字,但不能看到电话号码。
2. 围绕着需求1,演变出不想让员工自行安装APK,比如360安全卫士等能截获号码看到。
3. 围绕着需求1,担心log能看到。
之前开发情况:
1. 只是把android Contact的位置偏移了一下,写到数据库里的都是明文的号码。
2. 在通话记录、短信里显示的是一个真实号码,其中中间几位被*来替代,比如138****8888。
有一些bug,比如拨通话记录里的A,不小心就拨成B就出去了。之前的代码,我一行都没看,bug有那么五六个,看起来比较烦。
我也是没事,于是给客户提了两条主要的意见:
1. APK安装,我们也不知道你哪些可以安装,哪些不能安装,所以我可以提供一个白名单接口,动态更新,由他们来决定要更新哪些APK。
我说我能做到这一条,客户已经喜出望外了。
2. 能否做一个网络通讯录?号码都在底层和网络这边加密和解密就好,本地不存储通讯录。
我是这样说服客户的:你看过《暗算》么?就是谍战片,那些通过电报或者电台里传输的,很多都是加密过的。如果你加密方式足够好,那之前的都可以不做了。
客户当然一时时接受不了的,他得想半天。不过他当场表示,我提出的更好,更具安全性。
我也是有私心的,我就是不想改那些bug,客户同意我把自带的Mms和Contact给去掉,那我只要实现了,就没有什么bug了。
从底层来改,修改的地方不多,比较简洁,也符合我的风格。
工作量不大,具体的一些工作如下:
一、分别在底层和网络服务器都加上加解密。
- 在framework比较靠近底层的地方(当然,modem才是通讯更底层的地方),分别修改通话和短消息这几个地方。
事实上,我记得我只修改了5个文件,分别是发短信,收短信、来电、去电、Mms,分别在这些地方调用函数一下就可以了。
以来电为例:
来电--》framework层加密来电号码-》上层处理或者广播时会显示加密的号码--》客户APK截获
去电是一个反向的过程,原理是一样的。
- 加密后的号码,报给客户的APK,客户的APK用约定好的加解密算法来解密即可。
如果担心有人反编译APK,加解密算法可以用C来打包处理,实在不行就上传到他们的后台服务器处理好了。
- 加解密算法:
没有必要采用非对称加密算法,采用简单的对称加密算法就好。
加密的密钥可以由IMEI + IMSI + 独特密钥就好。
服务器上记录了每台手机的IMEI和IMSI号,离职的时候,禁用这个账号,对传上来的IMEI和IMSI不予理睬即可。
如果员工更换手机,那么IMEI就不起作用了,防止员工换手机吧。
如果员工更换了SIM卡,那么IMSI也不起作用了,防止员工换SIM卡去运营商营业厅打通话清单。
二、APK安装动态白名单
- 直接修改PackageInstaller.apk的源码,安装的时候加个条件判断,不符合条件就不能安装就行。这个条件,就是白名单,可以读取比如一个文件或者APK的preferenece等。
- 在framework里封杀adb安装的方式,这应该可以防止豌豆夹和91助手之类的安装吧。
- 客户要求干掉文件管理器。
- 考虑到的问题:其实apk安装的底层函数我没修改,如果有人直接调用函数直接安装的话,可能是可以的。
如果有人能获取root权限的话,可以直接push进去的,除非我连手机自带的adb也改了。
当然,有了上述的加解密算法,APK的动态白名单无足轻重,但我也可以后续在别的项目上使用。
现在我的斯玛特卡只有300多块钱了,有点怀念以往有几千块钱的时候挥金如土的样子,国庆在家写1~2篇专利好了,一篇专利1500元。专利其实很好写,你能写博客,稍微加工一下,主要是加解密的算法和过程写详细一点(审核专利的只看有没有重复的,如果算法重复,那就换另外一种算法就成,反正就强调新颖性、有价值之类的就好),垃圾专利的钱还是很好骗的。
android通讯录加密,一种手机通讯录加解密方式相关推荐
- 学习加密(四)spring boot 使用RSA+AES混合加密,前后端传递参数加解密(方式一)
参考地址:https://blog.csdn.net/baidu_38990811/article/details/83540404
- android 悬浮按钮 魅族,Android使用RecycleView实现魅族手机通讯录界面
原标题:Android使用RecycleView实现魅族手机通讯录界面 本文作者 本文由_小马快跑_投稿. _小马快跑_的博客地址: http://www.jianshu.com/u/18502855 ...
- android的kotlin通讯录,Android Loader的使用以及手机通讯录的获取方法
Android的主线程中执行长时间操作,导致界面无响应,会引起ANR.如果需要执行较长时间的操作,一般会在另一个线程处理,然后将数据转交给主线程进行显示,Android本身为我们提供了一些机制处理这种 ...
- mac 备份android 手机通讯录,苹果手机怎么备份通讯录到电脑?手机通讯录如何备份...
苹果手机怎么备份通讯录到电脑?手机通讯录如何备份?自从上次小编将手机的通讯录误删后,就对手机的数据备份恢复有了更多的研究,对于苹果手机如何备份通讯录的问题,小编可以通过使用数据恢复软件来解决,可以备份 ...
- 学习加密(四)spring boot 使用RSA+AES混合加密,前后端传递参数加解密
学习加密(四)spring boot 使用RSA+AES混合加密,前后端传递参数加解密 技术标签: RSA AES RSA AES 混合加密 整合 前言: 为了提高安全性采用了RSA,但 ...
- SpringBoot八种bean的加载方式
目录 第一种bean的加载方式-配置文件 第二种加载bean方式-注解和扫描 创建第三方的bean对象 第三种加载bean方式-不使用配置文件 扩展-bean的加载方式扩展FactoryBean< ...
- 微信公众平台开发(9)--消息加解密方式
点此查看 微信公众号/微信网页/微信支付/企业微信/小程序开发合集及源代码下载 本文目录 1. 前言 2. 判断加解密方式 3. 测试 4. 小结 1. 前言 登录微信公众平台,点击[设置与开发]-[ ...
- Android屏幕导出联系人,安卓手机通讯录导出到电脑(三种方法帮你导通讯录)...
换手机怎么导通讯录? 手机中有几个东西比较重要,笔者罗列了一下,最重要的东西因人而异,不过基本上就两个:"通讯录"."照片",照片平时可以拷贝出来,通讯录在更换 ...
- android电话本导入iphone,怎么把安卓手机通讯录导入iphone?安卓手机通讯录导入苹果手机三大方法分享...
Android是一种基于Linux的自由及开放源代码的操作系统,也正因此安卓系统迅速扩大市场份额;最近很多人都在问怎么把安卓手机通讯录导入iphone?下面为你带来安卓手机通讯录导入苹果手机三大方法分 ...
- Android 代码新增联系人至手机通讯录中
因项目需求,需要将本产品的客服电话信息,默默写入用户手机通讯录中,作为一个程序员,内心是拒绝的,但仍要实现该功能. 1. 动态申请读写权限 首先,在 Maniifest.xml 文件中添加如下两个权限 ...
最新文章
- Android layout_gravity
- java前补零工具类_java生成编码工具类,不足补0
- CSS样式引入方式和部分CSS样式的设置
- php一个入口 nginx 自动带斜线,Nginx 自动加斜杠
- STM32使用PWM输入模式测试频率和占空比
- 深度学习实践指南(一)—— 卷积和池化
- android 坚挺通话广播_关于短信黑名单 BroadCast
- centos7 mysql添加密码_centos-在Centos7上更改mysql根密码
- 测试基础(三)No Risk, No Test,证实和证伪相结合
- display-flex详解
- PHPstorm 函数或者方法的注释的时间和用户名,PHPstorm里函数方法的注释是没有动态时间设置的,但是看了PHP file里面有时间日期的注释,而PHP Function Doc Commen
- springboot slf4j log4j2 动态创建日志的方法
- C语言sin()函数绘制正弦曲线代码(0-2π)
- 周报(水管工问题,和图的遍历)
- “速课小龙”项目冲刺2
- 雷达多普勒频率计算公式_非接触式雷达流速仪在水文测量如何运用
- MPC算法学习(1)
- 【spring系列】spring依赖注入实现方式(含案例)
- 直流稳压电源与信号产生电路(模电速成)
- 【庖丁解牛】MySQL编译出现报错 : Could not find rpcgen 解决方案
热门文章
- c# asp.net 测试程序执行时间
- 如何学习数据库?数据库零基础入门指导
- mysql windos安装包_WINDOWS 安装mysql安装包_MySQL
- 西门子plc软件 linux,西门子PLC编程软件
- 图像与矩阵_Python_No.3
- matlab 调用 lingo,lingo和matlab用哪个
- 免费将pdf文件转换成word
- 软考网络工程师真题讲解
- 多用户商城系统三级分销的设计和实现
- 平面设计完全手册_平面设计师的三大软件:PS、AI、ID该如何选择?| 平面设计纯干货...