基于DES加密算法的WORD加密插件的实现(4)

2019-04-02 16:26

WinWord.exe。

图8 工程属性图

此后,可以设置断点,运行。采用标准VB中的调试方法调试程序。 (6) 安装

1)生成DLL后,自动在本机注册该插件。本机以后就可以使用了。 2)在其它机器安装:

将DLL拷贝到system32目录(其它目录也可以)

运行:regsvr32 DLL文件全路径(SYSTEM32目录不用路径) 3)删除

运行:regsvr32 -u DLL文件全路径(SYSTEM32目录不用路径) 4.2.2 Word代码的编写 (1) API函数声明

‘使用API文本浏览器贴入的WinAPI函数声明

Private Declare Function OpenClipboard Lib \(ByVal hwnd As Long) As Long ‘声明打开剪贴板函数

Private Declare Function CloseClipboard Lib \() As Long ‘声明关闭剪贴板函数 Private Declare Function EmptyClipboard Lib \() As Long ‘声明清除剪贴板函数 Private Declare Function SetClipboardData Lib \(ByVal wFormat As Long, ByVal hMem As Long) As Long ‘声明剪贴板赋值函数

Private Declare Sub Encode Lib \(ByVal sInput As String, ByVal sOutput As String) ’加密函数的声明

Private Declare Sub Decode Lib \(ByVal sInput As String, ByVal sOutput As String) ‘解密函数的声明

Private Const CF_BITMAP = 2

Private mAppWord As Word.Application Private mBar As Office.CommandBar

‘使用WithEvents声明,可以定义mBtn1,mBtn2的事件响应程序 Private WithEvents mBtn1 As Office.CommandBarButton Private WithEvents mBtn2 As Office.CommandBarButton

(2)添加工具栏加密解密按钮

第 13 页 共 20 页

Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant) Set mAppWord = Application

Set mBar = mAppWord.CommandBars.Add(\)

Set mBtn1 = mBar.Controls.Add(Office.MsoControlType.msoControlButton)’添加mBtn按钮的事件

Set mBtn2 = mBar.Controls.Add(Office.MsoControlType.msoControlButton)’添加mBtn2按钮的事件

SetButtonStyle mBtn1, 203, \加密\‘定义加密按钮 SetButtonStyle mBtn2, 203, \解密\‘定义解密按钮 End Sub

(3)定义按钮风格

Private Sub SetButtonStyle(btn As Office.CommandBarButton, idPic As Long, sCaption As String, sToolTip As String, btnStyle As MsoButtonStyle) ‘设置按键图标

‘这里需要使用WinAPI函数,见最上面的函数声明(使用开始菜单中”Microsoft Visual Basic API 文本浏览器”选择和粘贴 Dim bmp As IPictureDisp

Set bmp = LoadResPicture(203, vbResBitmap) 'vb加载资源的方法 If Not bmp Is Nothing Then OpenClipboard 0 EmptyClipboard

SetClipboardData CF_BITMAP, bmp.Handle CloseClipboard btn.PasteFace End If

'设置按键文本

btn.Caption = sCaption

'设置按键的ToolTip帮助信息 btn.ToolTipText = sToolTip

'显示按键

btn.Visible = True

'设置按键风格 btn.Style = btnStyle

'设置按键为允许 btn.Enabled = True End Sub

(4)加密按钮事件 Private Sub mBtn1_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)

第 14 页 共 20 页

'操作Word对象

Dim doc As Word.Document

'取Word当前活动文档

Set doc = mAppWord.ActiveDocument Dim para As Word.Range

Dim temp As String * 1024 ‘分配1024个字节缓冲区 Set para = doc.Range

Encode para.Text, temp ‘文档加密

para.Text = temp

'设置该段的颜色

para.Font.Color = wdColorBlue End Sub

(5)解密按钮事件

Private Sub mBtn2_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean) '操作Word对象

Dim doc As Word.Document

Set doc = mAppWord.ActiveDocument '取Word当前活动文档 Dim para As Word.Paragraph

Dim temp As String * 1024 ‘分配1024个字节缓冲区

Set para = doc.Paragraphs(1)

Decode para.Range.Text, temp ‘文档解密 para.Range.Text = temp

'设置该段的颜色

para.Range.Font.Color = wdColorBlue End Sub

5 测试

本毕业设计测试时遇到了很多问题,主要的问题在于缓冲区大小的控制问题,测试时,在Word文档中输入较长的文本内容后,再加密,会出现缓冲区溢出的错误,经过长时间查阅资料,此问题已解决,解决方法如下:

在Word文档中点击加密或解密按钮的时间中,首先得到要加密的Word内容,然后计算此内容的字节大小,根据这个大小再分配缓冲区的实际大小。此问题解决。

第 15 页 共 20 页

结 论

本文介绍了一个Word加密插件的开发和设计。用户通过使用该插件,可以在Word中,就地对Word文档的部分或全部内容进行加密和解密。加密后Word内容显示DES的密文,对其解密时,需要使用相同的Word加密插件才能正确的进行解密,这样保证重要信息不被泄漏,增加了Word的安全性。

本设计的重点是开发算法模块和Word插件。算法模块采用DES加密算法,在开发中采用DLL动态库技术实现。即将算法代码封装成一个DLL,由Word插件按需进行动态调用。此外,根据COM组件原理和Word插件的接口要求,我们开发了一个Word插件。该插件在Word中添加了一个工具栏,并在其上添加了两个按键,分别用于加密和解密。

尽管基本的加解密功能已经通过了测试,但由于时间的限制和在知识上的不足,该插件还有一些待改进的地方。如用户设置自己的密钥,操作界面的设计等。经过本设计的开发,我积累了不少程序开发的知识,为以后程序开发奠定了基础。

第 16 页 共 20 页

参考文献

[1] 徐景周(译),Office2000下内部COM插件的编程实现 [M].北京:清华大学出版社,

2002

[2] 曹天杰,张永平,苏成.计算机系统安全[M].2003 [3] 微软公司,VB部件工具 [M] .1997年

[4] 黄晓东,Visual C++6.0 Internet 开发指南. [M].北京:清华大学出版社,2000 [5] 赵德奎,Visual C++6.0 开发与实例. [M].北京:电子工业出版社,1999 [6] 冯延晖,刘晓铭,赵淦森,王泳. COM+编程[M].2002年11月

[7] 刘宗田等译.Bruce Eckel, Thinking in C++(C++ 编程思想)[M].机械工业出版社,2000

[8] 罗朝盛.Visual Basic 6.0程序设计实践指导[M]. 浙江科学技术出版社,2002

商业源代码,全套计算机毕业设计免费下载 http://www.ibaidusoft.com 更多全套设计联系QQ:1042897696

最新设计大全 http://www.bylw168.com/sf/20100915/3539.htm

第 17 页 共 20 页

第 18 页 共 20 页


基于DES加密算法的WORD加密插件的实现(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:化学教材教法试题和答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: