汇编语言对文件简易加密解密

合集下载

使用 VBA 实现数据加密和解密

使用 VBA 实现数据加密和解密

使用 VBA 实现数据加密和解密数据加密和解密在如今的信息技术领域中扮演着至关重要的角色。

无论是个人用户还是企业机构,都需要保护其数据免受未经授权的访问。

在这样的背景下,使用 VBA (Visual Basic for Applications) 可以实现数据加密和解密的功能,从而确保数据的安全性和机密性。

VBA 是一种编程语言,广泛应用于 Microsoft Office 套件中的各种应用程序,如Excel、Word和PowerPoint等。

通过使用VBA,我们可以利用其强大的编程功能来开发自定义的数据加密和解密方法。

在实现数据加密和解密之前,我们首先需要了解几种常见的加密算法,如对称加密、非对称加密和哈希算法。

对称加密算法使用相同的密钥对数据进行加密和解密。

这种加密算法速度快,但密钥的传递需要保证安全性。

VBA中可以使用加密API函数来实现对称加密算法。

例如,我们可以使用 Rijndael 加密算法 (也称为高级加密标准 AES) 来加密和解密数据。

非对称加密算法使用一对密钥:公钥和私钥。

公钥用于加密数据,只有拥有私钥的人才能解密。

VBA中可以使用Windows加密API函数来实现非对称加密算法。

例如,我们可以使用RSA算法来加密和解密数据。

哈希算法用于生成唯一的数字指纹,也称为哈希值。

使用哈希算法,我们可以对数据进行完整性检查,确保其未被篡改。

VBA中可以使用内置的哈希函数来生成哈希值,例如MD5、SHA-1和SHA-256。

现在,让我们看看如何使用VBA 实现数据加密和解密的功能。

首先,我们需要在 VBA 中引用 Microsoft ActiveX Data Objects Library。

这个库包含了许多数据库和加密相关的对象和方法。

接下来,我们可以使用下面的代码来实现数据的加密和解密:```Private Sub EncryptData(data As Variant, password As String)Dim encryptedData As StringDim rsa As ObjectSet rsa = CreateObject("CAPICOM.EncryptedData")rsa.Algorithm = 2rsa.Encrypt data, passwordencryptedData = rsa.ContentDebug.Print "Encrypted Data: " & encryptedDataEnd SubPrivate Sub DecryptData(encryptedData As String, password As String)Dim decryptedData As StringDim rsa As ObjectSet rsa = CreateObject("CAPICOM.EncryptedData")rsa.Algorithm = 2rsa.Content = encryptedDatarsa.Decrypt passworddecryptedData = rsa.ContentDebug.Print "Decrypted Data: " & decryptedDataEnd Sub```在上面的代码中,我们使用了 CAPICOM.EncryptedData 对象来执行加密和解密操作。

精选10个汇编语言程序案例集

精选10个汇编语言程序案例集

精选10个汇编语言程序案例集汇编语言是一种底层编程语言,直接操作计算机硬件。

在学习和研究计算机体系结构、编程理论以及进行低级优化等方面,汇编语言是非常重要的。

下面精选了一些汇编语言程序案例,以帮助初学者更好地理解和熟悉汇编语言。

1.程序:计算数组平均值这个程序接收一个包含n个整数的数组,并计算它们的平均值。

汇编语言的优势在于可以直接访问内存,并能够快速处理数据。

2.程序:反转字符串这个程序接收一个字符串作为输入,并将其反转。

使用循环和指针操作,可以高效地实现字符串的反转。

3.程序:求阶乘这个程序接收一个输入的正整数,并计算其阶乘。

使用循环和递归的方式,可以轻松实现阶乘的计算。

4.程序:排序算法实现这个程序实现了一些常见的排序算法,例如冒泡排序、插入排序和快速排序。

通过对数据进行比较和交换,可以实现对数组中元素的排序。

5.程序:查找算法实现这个程序实现了一些常见的查找算法,例如线性查找和二分查找。

通过对数组进行比较和分割,可以高效地实现对元素的查找。

6.程序:矩阵乘法这个程序接收两个矩阵作为输入,并计算它们的乘积。

通过使用循环和指针操作,可以高效地实现矩阵乘法。

7.程序:加密解密算法这个程序实现了一些加密解密算法,例如凯撒密码和DES算法。

通过对数据进行位操作和逻辑运算,可以实现对数据的加密和解密。

8.程序:图像处理算法这个程序实现了一些简单的图像处理算法,例如灰度化、边缘检测和图像缩放。

通过对像素进行操作和计算,可以实现对图像的处理。

9.程序:计算斐波那契数列这个程序接收一个输入的正整数,并计算对应位置的斐波那契数。

通过使用循环和递归的方式,可以高效地实现斐波那契数列的计算。

10.程序:位操作这个程序演示了一些常见的位操作,例如与、或、异或以及位移操作。

通过对数据进行位操作,可以实现对数据的处理和优化。

以上这些程序案例展示了汇编语言的一些基本应用和实现方式,通过学习和编写这些程序,可以更好地理解汇编语言的原理和编程技巧。

VBA中的数据加密和解密技巧

VBA中的数据加密和解密技巧

VBA中的数据加密和解密技巧简介:VBA(Visual Basic for Applications)是一种编程语言,广泛应用于Microsoft Office软件中,包括Excel、Word、PowerPoint等。

在VBA中,我们可以使用加密和解密技巧来保护敏感数据或者在数据通信过程中确保安全性。

本文将介绍一些常用的VBA数据加密和解密技巧,以帮助你更好地理解和运用VBA编程。

一、数据加密技巧1. 替换算法VBA中最简单的数据加密方式之一是使用替换算法。

这种算法将数据中的每个字符替换为另一个字符,从而改变数据的编码方式。

例如,将字母'A'替换为字母'Z',将字母'B'替换为字母'Y',以此类推。

使用替换算法加密的数据可以通过再次应用同样的算法进行解密。

2. 字符串反转另一种简单的字符串加密方式是字符串反转。

这种方式通过将字符串中的字符顺序颠倒来改变数据的编码方式。

例如,将字符串"Hello, World!"反转为"!dlroW ,olleH"。

使用字符串反转加密的数据可以通过再次应用同样的操作进行解密。

3. 移位算法移位算法是一种基于字符位置的加密方式,通过改变字符的位置来改变数据的编码方式。

例如,将字母'A'移位2位后得到字母'C',将字母'B'移位3位后得到字母'E',以此类推。

使用移位算法加密的数据可以通过再次应用相反的移位操作进行解密。

二、数据解密技巧1. 逆向操作对于使用替换算法、字符串反转或移位算法加密的数据,最简单的解密方式是应用相反的操作。

例如,如果数据是使用替换算法加密的,那么进行解密时只需再次应用同样的替换操作,将加密后的字符替换为原始字符即可。

2. 密钥解密另一种常用的数据解密技巧是使用密钥进行解密。

密钥是一个特殊的值,只有掌握密钥的人才能解密数据。

VBA文件加密和解密技巧

VBA文件加密和解密技巧

VBA文件加密和解密技巧近年来,随着信息技术的迅猛发展,数据安全性成为一个越来越重要的问题。

无论是个人用户还是企业组织,都需要保护他们的敏感信息免受未经授权的访问。

在Microsoft Office中,VBA(Visual Basic for Applications)是一种广泛使用的编程语言,用于自动化任务和增强功能。

本文将介绍VBA文件加密和解密技巧,帮助用户保护其VBA代码。

1. 为什么需要加密和解密VBA文件VBA可用于编写Microsoft Office应用程序中的宏。

宏可以自动化重复的任务,增加功能或处理数据。

这意味着VBA可以访问和修改敏感数据。

如果未经授权的人员访问了包含敏感信息的VBA代码,将对个人数据和业务数据产生严重危害。

因此,加密VBA文件可以有效降低数据泄露和其他形式的攻击风险。

相反,解密VBA文件对于开发者和系统管理员来说非常重要。

只有在必要时才能访问和编辑VBA代码,以维护和更新应用程序。

因此,配备解密VBA文件技巧是必不可少的。

2. VBA文件加密技巧为了加密VBA文件,我们可以使用以下的技巧:- VBA密码保护:在Excel、Word等Microsoft Office应用程序中,可以通过设置密码来保护VBA代码。

只有输入正确密码的人才能访问和修改VBA代码。

要设置密码,请打开VBA编辑器,选择“工具”>“VBAProject属性”,然后在“保护”选项卡中设置密码。

- 将VBA代码存储在外部文件:将VBA代码存储在单独的文本文件中,然后使用VBA加载器将其引入到Office 应用程序中。

通过这种方式,VBA代码不会暴露在Excel或Word中。

您可以使用文件加密技术加密外部文本文件,以进一步保护VBA代码。

- 使用三方加密工具:有许多第三方工具可以帮助您对VBA代码进行加密。

这些工具使用高级加密算法对代码进行加密,确保只有经过授权的人才能解密它们。

一些工具还提供其他安全功能,如代码隐藏和防止调试。

汇编语言对文件加密解密

汇编语言对文件加密解密

;************************************主程序中用到的所有宏定义*********************************************************
fopen macro filename,type,handle ;打开文件的宏(文件名,属性,文件代号)
fname_in db 20 dup(?),? ;为文件名准备的缓冲区
handle_in dw ? ;输入文件代号
error1 db "open file error!",0dH,0aH,'$' ;出错提示信息
quit_msg db "press any key to continue...$"
mov cx,size
lea dx,buffer
int 21H
endm
fclose macro handle ;关闭文件的宏(文件代号)
mov ah,3eH
mov bx,handle
int 21H
endm
pause macro ;暂停的宏
pause ;暂停
quit ;退出
main endp
;------------------------------------------加密模块--------------------------------------------
encryex proc near
in_msg1 db "input the source file name:",0DH,0AH,'$' ;输入提示信息
succmsg1 db "encry successfully!",0DH,0AH,'$'

汇编语言对文件简易加密解密

汇编语言对文件简易加密解密

汇编语言对文件简易加密解密1000字汇编语言是一种低级语言,能够对计算机指令进行直接控制。

在文件加密解密方面,汇编语言有着独特的优势。

本文将介绍如何使用汇编语言进行文件简易加密解密。

一、文件加密文件加密的原理是将明文文件转化为密文文件,使得未授权的读者无法获取文件内容。

下面介绍一种使用汇编语言进行文件加密的方法。

1. 获取明文文件内容首先需要读取需要加密的明文文件的内容。

汇编语言中可以使用系统调用来获取文件内容,具体步骤如下:1.1 打开文件首先需要使用系统调用打开文件并获取文件句柄。

```mov eax, 5 ; 系统调用号,代表打开文件mov ebx, filename ; 文件名mov ecx, 0 ; 访问模式,代表只读模式int 0x80 ; 调用系统调用mov fd, eax ; 将返回的文件句柄存入fd变量中```其中filename为需要加密的文件名,fd为文件句柄。

1.2 读取文件内容打开文件之后,需要读取文件的内容。

可以使用系统调用read来实现。

```mov eax, 3 ; 系统调用号,代表读取文件内容mov ebx, fd ; 文件句柄mov ecx, buffer ; 缓冲区mov edx, BUFFER_SIZE ; 读取的字节数int 0x80 ; 调用系统调用mov n, eax ; 将读取的字节数存入n变量中```其中buffer为存储读取内容的缓冲区,BUFFER_SIZE为缓冲区大小,n为读取的字节数。

2. 加密文件内容读取文件内容之后,需要将明文文件内容进行加密。

常见的加密算法有DES、AES等,本文不做过多介绍。

这里我们使用简单的异或操作进行加密。

```xor byte ptr [ebx], 0x55 ; 将每个字节与0x55进行异或运算进行加密```3. 将加密后的内容写入文件加密完成之后,需要将加密后的内容写入到新的文件中。

通过系统调用write,我们可以将加密后的内容写入到文件中。

Shell脚本中的文件加密和解密技巧

Shell脚本中的文件加密和解密技巧

Shell脚本中的文件加密和解密技巧在现代社会中,数据安全问题备受关注。

无论是个人用户还是企业机构,都需要对重要的文件进行加密和解密,以确保数据的安全性和隐私保护。

Shell脚本是一种在Unix和类Unix系统中使用的编程语言,可以通过编写Shell脚本来实现文件的加密和解密。

本文将介绍Shell脚本中常用的文件加密和解密技巧。

一、文件加密1. 使用GPG(GNU Privacy Guard)加密GPG是一个开源软件,可用于加密和签名数据。

可以使用GPG加密命令来加密文件,具体命令为:```gpg -c filename```其中,`filename`是要加密的文件名。

执行以上命令后,系统将提示输入加密密码,输入并确认密码后,将生成一个.gpg格式的加密文件。

2. 使用openssl加密openssl是一个开放源代码的软件库,可以用来进行各种加密操作。

可以使用openssl命令来加密文件,具体命令为:```openssl aes-256-cbc -salt -in filename -out filename.enc```其中,`filename`是要加密的文件名。

执行以上命令后,系统将提示输入加密密码,输入密码后,将生成一个.enc格式的加密文件。

二、文件解密1. 使用GPG解密使用GPG解密命令来解密.gpg格式的加密文件,具体命令为:```gpg filename.gpg```其中,`filename.gpg`是要解密的加密文件名。

执行以上命令后,系统将提示输入解密密码,输入正确的密码后,将生成一个解密后的文件。

2. 使用openssl解密使用openssl解密命令来解密.enc格式的加密文件,具体命令为:```openssl aes-256-cbc -d -in filename.enc -out filename```其中,`filename.enc`是要解密的加密文件名,`filename`是解密后生成的文件名。

VBA在文件加密与解密中的技巧分享

VBA在文件加密与解密中的技巧分享

VBA在文件加密与解密中的技巧分享文件加密与解密是在信息安全领域中非常重要的工具和技术。

VBA(Visual Basic for Applications)是一种用于Microsoft Office应用程序的编程语言,能够帮助用户通过自动化任务提高工作效率。

在文件加密与解密中,VBA可以发挥重要的作用,提供各种功能和技巧来保护和处理敏感数据。

本文将分享一些VBA在文件加密与解密中的技巧,帮助用户更好地保护和处理文件。

1. VBA密码保护在VBA中,可以使用密码保护来限制访问和修改VBA代码。

为了保护自己的VBA代码,可以使用以下VBA语句设置密码:```vbaVBProject.VBComponents("Module1").CodeModule.Password = "password"```此代码将给名为Module1的模块设置一个密码。

设置密码后,无法在没有正确密码的情况下访问、修改或删除模块中的代码,从而保护代码的安全性。

2. 文件加密技巧通过VBA,可以实现文件加密的功能,保护文件中的数据不被未授权的人访问。

以下是一种常见的文件加密技巧的示例:```vbaSub EncryptFile()Dim ws As WorksheetDim fileName As StringDim password As StringSet ws = ThisWorkbook.Worksheets("Sheet1")fileName = "C:\path\to\file.xlsx"password = "password"' 通过另存为功能将文件以密码保护的方式保存ws.SaveAs fileName:=fileName, Password:=password, FileFormat:=xlOpenXMLWorkbookEnd Sub```此代码将当前活动工作簿中的Sheet1工作表另存为名为file.xlsx的文件,并使用指定的密码对文件进行加密。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告课程微机原理课程设计题目简易文件加密解密系别物理与电子工程学院年级08级专业电子科学与技术班级三学号*******(02 14 23 24) 学生姓名崔雪飞陈祥刘刚李从辉指导教师居伟骏职称讲师设计时间2011-4-18 ~ 2011-4-22目录第一章绪论 (2)第二章分析与设计 (3)2.1 题目 (3)2.2 要求 (3)2.3 方案设计与论证 (3)2.3.1 整体设计思路 (3)2.3.2 方案选择 (3)2.4结构框图等设计步骤 (4)第三章实验程序及分析 (6)3.1 宏定义 (6)3.2 加密模块 (9)3.3 解密模块 (9)3.4 加密和解密算法子程序 (10)第四章实验结果及问题处理 (12)4.1 实验结果 (12)4.2出现的问题以及解决的方案 (13)4.2.1 文件写操作问题 (13)4.2.2 读入缓冲区的大小问题 (14)4.2.3不同文件类型加解密问题 (14)4.2.4 文件结束标志 (15)第五章总结与体会 (16)参考文献 (18)附录 (19)第一章绪论随着计算机硬件的发展,微机系统的功能越来越强,而且计算机的程序设计语言也经过了一个发展的过程。

从最基本的机器语言到汇编语言,并到高级的智能化语言,如visual C++、visual Basic等,不断前进。

汇编语言(Assembly Language)是面向机器的程序设计语言。

在汇编语合中,用助记符( Memoni )代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。

这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。

于是汇编语言亦称为符号语言。

使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。

汇编程序把汇编语言翻译成机器语言的过程称为汇编。

汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。

汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。

高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。

在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。

现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。

汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。

对给定的文件进行加密是当今计算机科学中的一个非常热门话题。

在本课程设计中,目的是给给定的文件进行加密和解密,加密方法有:文件里文本的二进制与10101010B作求和,解密则相应的与10101010B相减。

课设只是把所学的知识加以应用,不能轻视题目的简单,我们要借此机会,加强汇编语言的学习,并加深自己的知识。

在设计中,程序应用了BIOS中一些系统中断,设计了人性化的界面,这些是自学的汇编知识并加以应用,当然也有很多DOS系统的功能调用。

总之,自己结合平时所学和最近的自学,认真的完成课题,并很好的实现了相应的功能。

第二章分析与设计2.1 题目简易加密解密程序2.2 要求编写一个程序能够对某个文件进行简单加密和解密,加密过程要求将文件中所有数据读出,然后将每个字节的读出数据和10101010B作求和运算,实现加密,需要解密时用相应的求差运算。

要求有提示信息。

例如:enter pathname: c:\1.txt2.3 方案设计与论证2.3.1 整体设计思路1.考虑到要读文件内容,所以要先打开文件;2.打开文件之后,读出内容,调用加密子程序,进行加密;3.加密之后,写入文件存档,最后关闭文件。

4.如果要进行解密,先打开文件;5.读出内容,调用解密子程序,进行解密;6.写入文件并存档,最后关闭文件。

2.3.2 方案选择1.对于加密(解密),我们有两种方案:(1)把文件内容加密(解密)之后替换原来内容为加密(解密)内容;(2)把文件内容加密(解密)之后存在缓存区,删除原来文件并新建一个和原来名字一样的文件,存入加密(解密)数据。

对于方案(2)在源文件存入缓冲区之后,源文件可以被删除,但是在创建新的文件的时候,实践的时候无法创建。

然后再考虑到,这种方案比较繁琐,错误的几率比较大。

方案(1)在同一个文件中进行读写,用加密数据将原来的数据覆盖,数据安全性提高的同时,程序设计不再繁琐,所以我们选择方案(1)。

2.对于怎么读文件数据,我们有三种方案:(1)利用汇编语言读文件功能调用,将文件数据分512个字节分批读入内存,加密(解密)后返回给文件;(2)利用汇编语言读文件功能调用,将文件数据每次读一个字节,加密(解密)后返回文件;(3)利用汇编语言读文件功能调用,将文件数据分读8个字节分批读入内存,加密(解密)后返回文件。

从理论上讲,上述方案都可行,但是在实际操作中,发现方案(1)(2),可能由于cpu 处理的问题,在运行中程序都被打断,达不到预期效果,尤其是方案(1)。

最终我们选择方案(2),因为在后期的编写中我们发现方案(2)更加简便,能够避免前面方案出现的问题。

2.4结构框图等设计步骤如图2.4.1为本程序的汇编思路图,由于程序对文件的操作很多,所以编程过程中用到了很多功能调用。

图 2.4.1 汇编思路流程图如图2.4.2为程序使用流程,使用的是按键加解密,用户选择1时,程序执行加密。

用户选择2时,程序执行解密。

图2.4.2 程序运行流程图在拿到课题之前,我们小组讨论可以编写两个程序,一个用来加密,一个用来解密。

但后来发现通过键盘按键可以把加密和解密通过用户选择放在一起,其实加密和解密本来就是逆过程。

第三章实验程序及分析3.1 宏定义1.打开文件的宏(参数:文件名,属性,文件代号)使用了3DH功能调用: 打开文件操作, 得到文件句柄。

调用方式为:DS:DX=文件名的ASCII串地址,(AL)=存取代码,0—为读打开文件,1—为写打开文件,2—为读写打开文件。

若打开的文件存在CF=0 文件代号AX。

fopen macro filename,type,handlemov al,typemov ah,3dHlea dx,filenameint 21Hmov handle,axendm2.改变文件读写指针的宏(文件代号)使用了42H功能调用:移动文件读写指针。

调用方式:调用方式:BX =文件代号,(AL)=确定改变指针的三种方式:0—绝对移动,1—相对移动,2—绝对倒移。

CX(高位字) DX(低位字)—指定一个双字长的偏移可正可负。

若移动文件不成功CF=1错误代码AX。

pianyi macro handlemov ah,42hmov bx,handlemov dx,-1mov cx,-1mov al,1int 21hendm3.写文件的宏(文件代号,缓冲区偏移地址,要写的字节个数)使用了40H功能调用: 据文件代号写磁盘文件。

入口参数DS :DX=输入缓冲区地址、(BX)=文件代号、(CX)=要写入的字节数。

写文件成功CF=0 实际写入的字节数AX。

若磁盘满,实际写入的字节数可能和要求写入的字节数不同。

fwrite macro handle,buffer,sizemov ah,40Hmov bx,handlemov cx,sizelea dx,bufferint 21Hendm4.读文件的宏(文件代号,缓冲区偏移地址,要读的字节个数)使用了3FH功能: 读文件或设备功能。

调用方式:据文件打开取得的文件代号,按照指定的字节数从磁盘中把文件读出, 送入内存预先定义的数据缓冲区中。

BX =文件代号,CX =要读取的字节数,DS:DX=存放输入数据缓冲区的地址。

若读文件成功CF=0实际读取的字节数AX。

fread macro handle,buffer,sizemov ah,3fHmov bx,handlemov cx,sizelea dx,bufferint 21Hendm5.关闭文件的宏(文件代号)3EH功能: 关闭指定文件代号的文件。

入口(BX)=文件代号,关闭文件成功CF=0。

fclose macro handlemov ah,3eHmov bx,handleint 21Hendm6.暂停的宏使用07H号功能调用:直接控制台输入,无回显。

pause macromov ah,07Hint 21Hendm7.返回DOS的宏quit macromov ax,4c00Hint 21Hendm8.提示信息的串输出宏使用09H号调用:字符串输出显示。

(1)调用方式:DS:DX←要输出显示的字符串的首地址,AH←09H(调用号)INT 21H。

该功能调用完成在标准输出设备显示器上输出显示一字符串,字符串必须以字符“$”(24H)为结束标志。

但“$”字符不显示。

print macro msgmov dx,offset msgmov ah,09Hint 21Hendm9.文件名的串输入宏使用0AH号调用:字符串输入(1)调用方式:DS:DX←从键盘接收字符的输入缓冲区首址AH←0AH(调用号)INT 21H(2)说明:1)功能调用完成从键盘接收字符串存到指定内存的输入缓冲区,直到输入回车符时为止。

2)缓冲区的第一个字节为指定缓冲区能接收的字符的个数,缓冲区的第二个字节保留以用作填写实际输入字符的个数,缓冲区的第三个字节开始存放从键盘上输入的字符。

3)若实际输入的字符数少于定义的字节数,则缓冲区内其余字节补零。

gets macro msglea dx,msgmov ah,0AHint 21Hendm3.2 加密模块加密过程:先将从文件读取的数据逐个读入缓冲区,然后调用加密程序进行加密,再把加密后的内容写入缓冲区,最后把缓冲区的内容写入文件。

其中,在写入文件前要确保文件读写指针改变到正确位置,我们编写了一个改变文件指针的宏。

encryex proc nearencryex_start:fread handle_in,buffer,1 ;读取源数据cmp a x,cx ;比较实际长度和读出长度jb encryex_endpianyi handle_in ;修改文件偏移指针call e ncry ;执行加密fwrite handle_in,buffer,1 ;写加密数据jmp encryex_start ;继续读取文件encryex_end: ;加密结束print lines ;输出回车换行fclose handle_in ;关闭文件print succmsg1ret ;返回主程序encryex endp3.3 解密模块解密模块是加密模块的逆过程,将已加密数据读入缓冲区,调用解密子程序,解密后的结果返回缓冲区,在写入文件,同样,写文件前得关键步骤是正确改变文件读写指针。

相关文档
最新文档