android 文件加密解决方法,一种Android平台的文件快速加密以及解密方法与流程
本发明属于数据安全领域,具体涉及一种Android平台的文件快速加密以及解密方法。
背景技术:
目前移动办公系统极大地提升了企、事业单位的工作效率,而带装有办公应用的智能设备中会存储一些较高机密性的文件及重要有关于商业信息的照片。而这些智能设备一旦丢失或者被有心人士通过各种手段窃取到文件,使文件外流处于不安全状态,一旦被不道德者利用就会给使用者带来极大的困难。因此,现有技术提出一些关于对文件进行加密的方法,虽然能够保证文件的隐秘性或保密性,但是它们的加密方式较为复杂,且大文件耗时较长,所以迫切的需要一种更快速且安全的加密解密方法。
技术实现要素:
要解决的技术问题
本发明针对现有技术的不足,提供了一种Android平台的文件快速加密以及解密方法,能够有效解决现有技术加密文件效率低下问题。
为解决以上问题,本发明采用的技术方案如下:
一种Android平台的文件快速加密以及解密方法,该加密方法包括加密步骤和解密步骤,其特征在于,其中所述加密步骤包括:
a) 将待加密文件数据读取为二进制字节流;
b) 将二进制流数据随机分成若干个不等份,并依次存储在一个内存数组中,其中所分成不等份大于100小于8M;
c) 以多线程多任务的方式加密二进制数据流,通过AES加密算法执行加密过程;
d) 存储加密后的二进制数据流,文件名为原文件名+序号。
所述解密步骤包括:
a) 读取待解密文件所有的加密文件,并依次存储在一个内存数组中;
b) 以多线程多任务方式读取待解密文件数据流;
c) 组合二进制数据流;
d) 还原文件的二进制数据流,生成解密文件。
有益效果
本发明技术方案通过拆分文件数据,并对每段数据进行加密,再对拆分的文件的分段加密后的数据标识,并分开存储,从而不仅达到加密文件的目的,而且还使操作原理更简单、使用更方便。
附图说明
图1加密流程图;
图2 解密流程图。
具体实施方式
下面根据附图和实施例对本发明作进一步详细说明。
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明实施例进行详细的描述。
本发明实施例提供了一种文件加密方法,该加密方法包括加密步骤和解密步骤。
其中如图1所示,所述加密步骤包括:
a) 将待加密文件数据读取为二进制字节流;
动态开劈一段新的存储空间,使用Android平台API接口将文件数据读取为二进制字节流byte后存储在存储空间内;
b) 将二进制流数据随机分成若干数据包,并依次存储在一个内存数组中,其中每份小于8M,拆分后数据包个数计算公式为:
int fileNum= Math.ceil(原文件长度/size) + 1,其中size=1024或size=2048或size=4096或size=8192。
最后一个数据包里数据长度计算公式为:
int lastSize = (int) (原文件长度 - (fileNum-1)*size);
c) 以多线程多任务的方式加密拆分后的数据包,调用AES加密算法执行加密过程;
d) 保存加密后的数据包到指定文件,文件名为原文件名+序号。
其中如图2所示,所述解密步骤包括:
a) 读取待解密文件所有的加密数据包,获取数据包序列;
b) 以多线程多任务方式解密数据包;
c) 根据数据包序列组合数据包,生成解密文件。
由于每个数据包的长度是确定的,所以文件在加密解密时可以使用多任务多线程方式来加快处理速度,具体技术细节 如下:
a) 线程池中工作线程数取8*CPU核心数;
b) 每个任务只能处理一个数据包的加密或解密工作;
c) 工作线程每次从任务池取一个任务进行处理,并根据数据包的序列,加密时将处理结果写到指定文件,解密时写到输出文件相应位置;
d) 当一个任务完成后将返还工作线程到线程池,且任务销毁;
有剩余未处理的任务且工作线程数小于最大线程数时,可以创建新的工作线程继续处理待处理的任务。
以上所述仅为本发明创造的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
android 文件加密解决方法,一种Android平台的文件快速加密以及解密方法与流程相关推荐
- NLP:Word Embedding词嵌入/word2vec词向量思想方法(一种主流的分布式表示)的简介、使用方法、案例应用之详细攻略
NLP:Word Embedding词嵌入/word2vec词向量思想方法(一种主流的分布式表示)的简介.使用方法.案例应用之详细攻略 目录 词嵌入(一种主流的分布式表示)的简介 词嵌入的案例理解
- android 手机分区失败怎么办,一种Android系统Data分区自修复方法及系统专利_专利查询 - 天眼查...
1.一种Android系统Data分区自修复方法,其特征在于,包括: 步骤1: Android智能终端开机进入Android系统后,判断Data分区是否损坏,对Data分 区进行挂载,然后读取Data ...
- android gps导航省电,一种GPS导航中省电的系统和方法与流程
一种gps导航中省电的系统和方法,应用于通过gps(或者类似的北斗.伽利略)导航的领域. 背景技术: 在移动设备领域(手机.车载导航等),通过卫星导航应用非常普遍,几乎全部的手机,大部分的汽车,自身都 ...
- android设置布局高度自适应,4种Android屏幕自适应解决方案
Android支持多屏幕机制即用为当前设备屏幕提供一种合适的方式来共同管理并解析应用资源.本文就介绍了4中Android屏幕自适应解决方案. 一.细说layout_weight 目前最为推荐的Andr ...
- Android的布局有哪几种,Android布局居中的几种做法
Android的布局文件中,如果想让一个组件(布局或View)居中显示在另一个布局(组件)中,可以由这么几种做法: android:layout_gravity android:gravity and ...
- amd运行android studio,彻底解决AMD 无法运行android studio原生模拟器
彻底解决AMD 无法运行android studio原生模拟器 文章目录 彻底解决AMD 无法运行android studio原生模拟器 步骤 零:本机配置 步骤 一 : 开启bios虚拟化.关闭wi ...
- android菜单的类型有几种,Android中的Menu(菜单)的三种类型菜单的学习
今天学习一下菜单组件,在Android中的菜单中有三种①:OptionMenu(选项菜单)②:ContextMenu(上下文菜单) ③:SubMenu(子菜单) 下面分别来学一下 一:OptionMe ...
- jupyter调用py文件_解决Jupyter notebook中.py与.ipynb文件的import问题
在jupyter notebook中,因为其解析文件的方式是基于json的,所以其默认保存的文件格式不是.py而是.ipynb.而.ipynb文件并不能简单的import进.py或者.ipynb文件中 ...
- Java多线程读取excel文件_解决springboot 多线程使用MultipartFile读取excel文件内容报错问题...
springboot项目开启多线程 启动类加注解开启 @EnableAsync,实现类方法加注解 @Async 前端页面 报错信息 java.io.FileNotFoundException: C:\ ...
最新文章
- GitHub上最励志的计算机自学教程
- 9、Windows驱动开发技术详解笔记(5) 基本语法回顾
- 将可执行文件以资源的方式加入到另一个可执行文件并释放
- 弹出窗口里面的子页面控制父页面的解决办法
- jQuery笔记[1]——jqGrid中实现自定义链接弹出subgrid
- Acwing1069. 凸多边形的划分
- 洛谷 P1948 [USACO08JAN]电话线Telephone Lines
- linux删除文件文件夹
- 架构篇:大型网站技术架构
- 分享大牛们的刷题经验——比你聪明的人还在拼命努力,你有什么资格浪费时间
- 2021创新创业基础(李家华)100分期末考试答案
- 五款超好用ZBrush笔刷(文末附下载链接)
- SQL注入—MYSQL基础语句(持续更新)附图
- matlab求fft频谱峰值程序,用FFT对信号作频谱分析Matlab程序
- 分类与预测模型效果评价
- 重新发现Oracle太美之root.sh
- 软件开发—钱多多—典型用户分析
- 石家庄医学高等专科学校计算机试题,石家庄医学高等专科学校高职单招医学类对口职业测试题...
- Java中Stream的使用
- 蓝牙BLE4.0-HM-10设备配对指南