Android高效的数据加密方案,Android数据加密方案
很多人都知道Android数据需要加密,毕竟反编译、抓包,你懂的,可是有时候不知道从何入手,比如菜鸟的我,经过这几天的折腾之后,我整理了一些思路,有不对的地方,还请多多指点。
2、加固:APP上线之前最好做一下加固,常用的有:360加固宝,爱加密等
3、HTTPS:现在很多APP都用HTTPS作为网络传输的保证,防止中间人攻击,提高数据传输的安全性(用Retrofit的网络请求框架的,要加上HTTPS也不是什么难事,推荐 http://www.jianshu.com/p/16994e49e2f6 ,这里说的HTTPS是指自签的)
4、如果你没用HTTPS的话,为了确保传输安全,还需对传输的数据进行加密,这里我推荐用AES+RSA进行加密,(不知道这两种加密算法的自行百度一下,了解一下原理),我画了一张流程图:
数据加密流程.png
具体过程:是先由服务器创建RSA密钥对,RSA公钥保存在安卓的so文件里面,服务器保存RSA私钥。而安卓创建AES密钥(这个密钥也是在so文件里面),并用该AES密钥加密待传送的明文数据,同时用接受的RSA公钥加密AES密钥,最后把用RSA公钥加密后的AES密钥同密文一起通过Internet传输发送到服务器。当服务器收到这个被加密的AES密钥和密文后,首先调用服务器保存的RSA私钥,并用该私钥解密加密的AES密钥,得到AES密钥。最后用该AES密钥解密密文得到明文。(用Retrofit的网络请求框架的,要加密参数和解密服务器传输过来的数据需自定义Converter,推荐http://blog.csdn.net/zr940326/article/details/51549310)
5、so文件:ndk开发的so,可以存放一些重要的数据,如:密钥、私钥、API_KEy等,不过这里我建议大家使用分段存放,C层(so文件)+String文件(string.xml)+gradle文件,用的时候再拼接合并,还有如上图所示,AES的加密算法是放在C层进行实现的,这样也是最大程度保护我们数据的安全
Q:公钥传输是否有安全问题?(RSA key)R:固定key,也就是保存在so文件中,理论上不会不安全,当然也可以动态从服务器获取,但传输不安全(前提不是https)
Q:AES key存储在哪里比较好?R:分段存放,C层(so文件)+String文件(string.xml)+gradle文件;也可以从服务获取
我觉得思路、方案是最重要的,代码实现相对来说还是比较容易的!
Android高效的数据加密方案,Android数据加密方案相关推荐
- Android 应用进程保活APP常驻内存研究方案
前言 遥想当年,博主铭记在心的一件事,就是曾做过让我加快秃顶的功能--健步活动.我们知道,在Android4.4之后的版本中,Android在硬件中支持内置计步传感器,例如微信运动等软件都是调用了An ...
- 数字标牌 android,【浩鑫推出全球首款英特尔方案+Android系统数字标牌播放器】PjTime.COM 新品快讯 Intel...
世界知名迷你准系统领导品牌-浩鑫Shuttle,秉承开拓创新,引领行业发展的传统,此次创造性的推出全球首款采用英特尔硬件方案搭载Android系统的NS01A数字标牌播放器,为整个数字标牌行业贡献了全 ...
- Android 高清加载巨图方案 拒绝压缩图片
Android 高清加载巨图方案 拒绝压缩图片 转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/49300989: 本文出自: ...
- 【Android 安装包优化】Android 中使用 SVG 图片 ( Android 5.0 以下的矢量图方案 | 矢量图生成为 PNG 图片 )
文章目录 一.Android 5.0 以下的矢量图方案 二.矢量图生成为 PNG 图片 三.完整的 build.gradle 构建脚本 四.编译效果 五.参考资料 一.Android 5.0 以下的矢 ...
- android 启动优化方案,Android 项目优化(五):应用启动优化
介绍了前面的优化的方案后,这里我们在针对应用的启动优化做一下讲解和说明. 一.App启动概述 一个应用App的启动速度能够影响用户的首次体验,启动速度较慢(感官上)的应用可能导致用户再次开启App的意 ...
- android 渠道方案,Android多渠道打包时获取当前渠道的方法
作为Androidapp,发布多个分发平台是常规操作.然后,有时由于个渠道面对的用户不同,或平台审核标准不同,需要在各渠道使用不同的业务逻辑,这就需要根据渠道使用选择差异化代码. 这里把简单的代码记一 ...
- android短信验证码方案,Android之短信验证码
今天所使用的方案只是android手机设备集成短信验证码功能的方案之一. 我们所采用的方案是使用聚合数据的短信验证sdk. 接口文档:https://www.juhe.cn/docs/api/... ...
- android存储视频文件夹在哪,Android 中 视频存储路径的一个方案
版权声明:本文为博主原创文章,未经博主允许不得转载. 在进行视频的下载时,我们经常会面临存储路径的选择,选择一个好的存储路径能对Android系统中的内存起到优化的作用.主流app下载路径分析和常见的 ...
- Android集成GMS服务及GMS认证方案
如果产品要出到国外,特别是欧美,那么极大可能需要集成GMS并进程GMS认证. 这里有三种情况: 1.特殊定制化设备,Android只是一个平台,所有业务全部都是自己的App实现的,服务器也是自己的.中 ...
- android+反调试+方案,Android反调试笔记
1)代码执行时间检测 通过取系统时间,检测关键代码执行耗时,检测单步调试,类似函数有:time,gettimeofday,clock_gettime. 也可以直接使用汇编指令RDTSC读取,但测试AR ...
最新文章
- 小试牛刀之Django
- 如何根据C编程语言标准初始化结构
- HTTP_REFERER的获取情况
- 沈向洋谈做研究的那些事儿
- 使用设计模式构建通用数据库访问类
- P1160-队列安排【链表】
- volatile和synchronized的区别与联系
- LeetCode 1586. 二叉搜索树迭代器 II(数组+栈)
- 李开复“口误”惹事,人脸隐私数据合作?蚂蚁、旷视大喊冤枉!
- cocos2dx动画Animation介绍
- 2014乌云安全峰会文字版记录
- RGMII(Reduced Gigabit Media Independent Interface)
- MPI_多节点执行程序
- 简单易懂的现代魔法……原来是C++啊
- 如何用python做兼职_python学会后可以干什么副业#做什么兼职副业好
- 负载均衡和Nginx
- php生成水印函数,php使用imagecopymerge()函数创建半透明水印
- 推荐20个优秀企业技术博客
- 如何查看本机是否支持IPv6?
- pstack命令使用说明