一种加密档案文件格式方案的设计思路
来源:互联网 发布:中金金网交易软件 编辑:程序博客网 时间:2024/05/01 00:15
该方案是围绕加密档案的管理进行加解密等操作的,因此加密档案的文件格式设计至关重要。我们参考了ZIP文件格式标准,对加密档案的文件格式进行了设计。
l 文件格式概览
一个加密档案由以下三个部分数序排列组成:加密档案数据区、加密档案目录区、加密档案总控区。
其中,加密档案数据区存储加密后的密文区块,加密档案目录区存储加密后的虚拟目录体系,加密档案总控区存储加密档案的概要信息。
l 加密档案总控区的数据格式
加密档案总控区位于档案的末尾,它包含了该加密档案的总体信息,在打开加密档案时,首先是通过总控区获取文档的基本信息。
同时,总控区还包含了指向目录区起始位置的偏移量、目录区的目录项数、目录区所占字节数等信息,用以进一步对目录区进行定位及访问。
加密档案总控区的数据格式如下:
l 加密档案目录区的数据格式
加密档案目录区的目录项用来对档案内部的虚拟目录结构进行管理,每一个目录项均指向档案数据区的一个数据区块,加解密时就是根据目录项对数据区的对应数据进行操作的。目录区的结构如图所示。
l 加密档案数据区的数据格式
加密档案的数据区除了密文之外没有过多的信息,该区是被档案目录区的目录项划分为区块并索引、管理的,该区的结构如下:
l 加密档案文件格式使用示意
该方案在操纵加密档案时,首先将总控区及目录区装载到系统的档案管理对象体系中,之后对档案的操作(加解密、目录维护、备注修改)都是根据操作所需的数据,从总控区索引到目录区,再从目录区索引到数据区。
l 加密档案管理流程
该方案对档案的管理采取虚拟目录的方式,即在加密档案中允许建立并维护档案内部的目录结构。处理要点如下:
l 在打开加密档案时,系统载入档案的控制信息,包括负责总控的总控区和负责虚拟目录的目录区,并在内存中形成对应的对象型数据结构。数据区只有在需要操作档案内的文件条目时,才根据需要以流(Stream)的方式载入(详细情况参考加密解密流程),并且载入一个条目的数据,处理之后释放,然后才载入下一个条目。这会提高系统的处理效率并降低内存资源的占用,也利于系统处理较大的文件。
l 后继对档案操作(加密/解密)时,将同时维护内存的控制区数据结构(包括档案总控区和目录区),并根据目录区更改相应的更改磁盘上数据区所保持的加密数据。
l 保存档案时,因数据区已经在操作时不断相应更新,因此只需写回更改后的控制区即可完成。
(摘自协助友人指导学生的参赛作品)
- 一种加密档案文件格式方案的设计思路
- Qt+SQLite数据加密的一种思路
- RPGViewer - 档案文件格式概述
- 一种Web UI 的代码设计思路
- 操作配置文件的一种设计思路
- 一种值得借鉴的设计思路
- 一种API代码结构的设计思路
- 又一种设计思路
- 项目设计的方案及思路
- 档案文件properties的使用
- 一种系统异常设计思路
- 一种串口高效收发思路及方案
- 一种串口高效收发思路及方案
- 一种彻底粉碎Windows磁盘文件的设计思路
- 控制表单内容字段必填项的一种设计思路
- Qt 应用程序的一种插件化设计思路
- 一种手游中实时战斗系统的设计思路
- 系统分析的一种思路
- 一些常用ABAP program 的例子
- VC6.0下实现系统托盘的气泡提示窗口(Use NIIF_INFO)
- Visual C++编译器常用选项设置
- ASP.NET AJAX自定义应用程序服务的服务器端实现
- DirectShow开发音视频聊天程序
- 一种加密档案文件格式方案的设计思路
- mouse_event
- 几个常用的WINDOWS消息的值
- outerDocument : 使用itemRender 和item Editor时想要访问外部量的关键字
- 优化数据量大的表创建索引篇
- Excel导入数据到SQL数据库
- JAVA几个常见错误简析
- 小程序演示 C# 3.0 语法新特性
- vc小技巧---2