首页 > 范文大全 > 正文

加密插件实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇加密插件实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:加密插件应用程序是一个IE的加载项,实现下载过程中自动加密的功能。加密插件采用微软的BHO技术开发,替换了IE默认的文件下载处理程序,实现对下载文件的自动加密处理。加密插件是一个标准的COM应用程序,通过ATL技术完成COM对象的实现。加密插件是一个DLL,本文论述的并不能运行,是通过IE加载他的功能组件。

关键词:加密插件 功能 实现

一、主要功能类

除了使用公共业务层中的类以外,实现加密插件还包括几个主要的类,见下图所示:

图1 加密插件主要功能类

这些类按照功能划分,分为程序框架类、界面处理类、COM接口相关实现类、其他辅助功能类等四种类型。

二、针对每个类的具体说明

CMyBHOApp 主应用程序类,也是用用程序的入口。从MFC的 应用程序类CWinApp派生。主要的函数有:

InitInstance 初始化实例。设置一些全局变量的初始值,检查当前加载该应用的宿主应用程序是否为IE浏览器。

ExitInstance 退出应用实例。

CMyBHOModule 组件模块类,通过ATL的CAtlDllModuleT类模版实现。通过ATL类模版中实现的功能,完成COM组件库的自动注册功能。

CDLProgress 文件下载进度处理界面类,是一个界面视图类。该类实现一个MFC的标准的Dialog窗口,显示文件下载的进度信息。主要功能函数包括:

RefreshTitle 刷新窗口的标题信息。窗口的标题显示正在下载的文件名称、来源网站信息以及文件的下载进度。每当下载进度更新时,需要调用该方法刷新窗口的标题栏。

SetProgress 设置下载进度。

SetFinish 下载完成,设置进度条。

SetCloseWait 非自动关闭状态,设置关闭按钮。即允许通过点击关闭按钮来关闭下载进度信息窗口。

IsAutoClose 判断是否为自动关闭状态。

ReleaseWindows 释放窗口对象。

CFileSaveDialog 设置文件保存属性对话框类。这个类主要用来提示用户选择下载文件的加密模式(明文下载还是加密下载),以及输入文件的加密口令。主要功能函数有:

OnInitDialog 初始话对话框,设置初始参数。

OnBnClickedOk 点击确定按钮时的处理函数。保存界面上用户输入的数据,检查输入的口令是否一直。

OnBnClickedCancel 点击取消按钮时的处理函数。关闭当前对话框,结束当前文件下载流程。

CDownloadMonitor COM接口的实现类,主要实现IObjectWithSiteImpl接口和IDownloadManager接口。通过IObjectWithSiteImpl接口实现与IE之间的交互,通过IDownloadManager接口实现一个自定义的文件下载管理器。该类从CUtilMan派生,CUtilMan类主要封装实现IDownloadManager的相关接口。CDownloadMonitor类从CUtilMan类继承了所有IDownloadManager接口的实现。主要的功能函数有:

SetSite 由IObjectWithSiteImpl接口提供,作为BHO和IE之间的交互接口,将IE的COM组件模型对象的引用交给BHO对象进行处理。在该函数的实现中,实现了对FileDownload事件处理函数的注册。

FileDownload 事件处理函数。当IE中有文件下载事件发生时,会触发该函数的调用。该函数在SetSite函数中进行注册的。在这个事件处理函数中,会检查IE的默认文件下载管理器是否为加密下载组件BHO实现的文件下载管理器,如果不是则立即进行注册修改。

CUtilMan 下载管理器工具类,主要封装实现了IDownloadManager接口,实现一个IE的自定义的文件下载管理器的功能。该工具类中,对文件下载管理器接口第一个各种触发事件进行了处理,实现IE文件下载过程与BHO对象内部处理过程之间的交互。CUtilMan对下载任务进行管理,通过WBBSCBFileDL类创建和处理下载任务,并加入任务列表进行管理。

WBBSCBFileDL 下载管理器辅助对象,实现一个简单的下载管理器,处理一个独立的下载任务。

CUrlParts Url处理来辅助类,从HTTP请求数据包中分析和提取Url信息,以及下载文件的文件名、文件大小等相关信息。

CTmpBuffer 临时缓冲处理辅助类,用于进行文件数据接收的临时缓存处理。

三、 界面设计

加密插件的主要功能通过COM接口提供,由IE进行加载和调用。在完成下载的过程中,设计到两个用户界面,分别为文件下载进度界面和选择加密模式界面。这两个界面都采用MFC的对话框窗口来实现。

参考文献:

[1]范志先,孙殿柱,李延瑞,孙肖霞.采用MFC开发用户交互界面的新方法[J].工程图学学报.2008(04)

[2]宋坤,秦宏胜,周卫华,车云霞,申泮文.使用MFC与ATL两种工具开发ActiveX控件[J].计算机与应用化学.2000(05)

[3]刘论战.软件开发中的人机界面设计方法[J].信息与电脑(理论版),2009,(12)

[4]付岩,白硕,李国杰.设计模式与MFC中的文档-视图结构[J].计算机科学.2000(09)

[5]李永亮,葛维春,王芝茗.IEC61850通讯标准中的编码规范ASN.1[J].电力系统保护与控制.2008(22)