很多人都知道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数据加密方案相关推荐

  1. Android 应用进程保活APP常驻内存研究方案

    前言 遥想当年,博主铭记在心的一件事,就是曾做过让我加快秃顶的功能--健步活动.我们知道,在Android4.4之后的版本中,Android在硬件中支持内置计步传感器,例如微信运动等软件都是调用了An ...

  2. 数字标牌 android,【浩鑫推出全球首款英特尔方案+Android系统数字标牌播放器】PjTime.COM 新品快讯 Intel...

    世界知名迷你准系统领导品牌-浩鑫Shuttle,秉承开拓创新,引领行业发展的传统,此次创造性的推出全球首款采用英特尔硬件方案搭载Android系统的NS01A数字标牌播放器,为整个数字标牌行业贡献了全 ...

  3. Android 高清加载巨图方案 拒绝压缩图片

    Android 高清加载巨图方案 拒绝压缩图片 转载请标明出处:  http://blog.csdn.net/lmj623565791/article/details/49300989:  本文出自: ...

  4. 【Android 安装包优化】Android 中使用 SVG 图片 ( Android 5.0 以下的矢量图方案 | 矢量图生成为 PNG 图片 )

    文章目录 一.Android 5.0 以下的矢量图方案 二.矢量图生成为 PNG 图片 三.完整的 build.gradle 构建脚本 四.编译效果 五.参考资料 一.Android 5.0 以下的矢 ...

  5. android 启动优化方案,Android 项目优化(五):应用启动优化

    介绍了前面的优化的方案后,这里我们在针对应用的启动优化做一下讲解和说明. 一.App启动概述 一个应用App的启动速度能够影响用户的首次体验,启动速度较慢(感官上)的应用可能导致用户再次开启App的意 ...

  6. android 渠道方案,Android多渠道打包时获取当前渠道的方法

    作为Androidapp,发布多个分发平台是常规操作.然后,有时由于个渠道面对的用户不同,或平台审核标准不同,需要在各渠道使用不同的业务逻辑,这就需要根据渠道使用选择差异化代码. 这里把简单的代码记一 ...

  7. android短信验证码方案,Android之短信验证码

    今天所使用的方案只是android手机设备集成短信验证码功能的方案之一. 我们所采用的方案是使用聚合数据的短信验证sdk. 接口文档:https://www.juhe.cn/docs/api/... ...

  8. android存储视频文件夹在哪,Android 中 视频存储路径的一个方案

    版权声明:本文为博主原创文章,未经博主允许不得转载. 在进行视频的下载时,我们经常会面临存储路径的选择,选择一个好的存储路径能对Android系统中的内存起到优化的作用.主流app下载路径分析和常见的 ...

  9. Android集成GMS服务及GMS认证方案

    如果产品要出到国外,特别是欧美,那么极大可能需要集成GMS并进程GMS认证. 这里有三种情况: 1.特殊定制化设备,Android只是一个平台,所有业务全部都是自己的App实现的,服务器也是自己的.中 ...

  10. android+反调试+方案,Android反调试笔记

    1)代码执行时间检测 通过取系统时间,检测关键代码执行耗时,检测单步调试,类似函数有:time,gettimeofday,clock_gettime. 也可以直接使用汇编指令RDTSC读取,但测试AR ...

最新文章

  1. 小试牛刀之Django
  2. 如何根据C编程语言标准初始化结构
  3. HTTP_REFERER的获取情况
  4. 沈向洋谈做研究的那些事儿
  5. 使用设计模式构建通用数据库访问类
  6. P1160-队列安排【链表】
  7. volatile和synchronized的区别与联系
  8. LeetCode 1586. 二叉搜索树迭代器 II(数组+栈)
  9. 李开复“口误”惹事,人脸隐私数据合作?蚂蚁、旷视大喊冤枉!
  10. cocos2dx动画Animation介绍
  11. 2014乌云安全峰会文字版记录
  12. RGMII(Reduced Gigabit Media Independent Interface)
  13. MPI_多节点执行程序
  14. 简单易懂的现代魔法……原来是C++啊
  15. 如何用python做兼职_python学会后可以干什么副业#做什么兼职副业好
  16. 负载均衡和Nginx
  17. php生成水印函数,php使用imagecopymerge()函数创建半透明水印
  18. 推荐20个优秀企业技术博客
  19. 如何查看本机是否支持IPv6?
  20. pstack命令使用说明

热门文章

  1. Javascript如何截取含有表情的字符串
  2. WiFi共享精灵陪你看《爸爸去哪儿》
  3. Unity实现在Android端获取Android手机的唯一ID(设备号)(亲测Android11可用)
  4. LiveNVR视频流媒体服务器软件支持配置通道视频宽、视频高、视频码率降低码流输出视频直播流
  5. 8小时快速入门,golang安装学习,有语言基础的快来学习
  6. 星空极速网卡多人拨号助手:mac地址修改器。
  7. 压力测试工具Benchmark
  8. hbase数据备份或者容灾方案
  9. C++ stringstream
  10. 谈谈电影站怎么做seo优化