logo资料库

汇编文件加密.doc

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
1.题目
2.程序总体设计方案、思路
3.程序设计框图
4.源程序清单
ASSUME CS:CODE,DS:DATA
START:
5.程序调试结果及分析
1. 题目 课题 3.文件加密程序 要求:A、文件名从键盘输入。 B、加密密钥从键盘输入。 思路:从原文件读取内容至缓冲区,对其加密后,重新写回文件原来的地方。 提示要点:A、加密可使用“异或”操作。 B、相关中断为 3DH,3EH,3FH,40H,42H 号系统功能调用(INT 21H)。 2. 程序总体设计方案、思路 本次程序设计总体分为六个模块,进入该程序打开文件;输入密码;读取要加密 的文件的内容;对文件内容加密;将加密后的文件写入;关闭并保存该文本,通 过界面提示进行选择来分别进入到各模块中。 1. 进入界面,根据提示操作。 2. 用键盘输入一个文件名,存到 STR1 缓冲区,用 3DH 系统功能打开文件。 3. 若输入文件名错误,则要求重新输入。 4. 用键盘输入三个字符作为密码,存到 STR2 缓冲区,并对密码进行处理。 5. 若密码大于三个字符,则要求根据提示重新输入。 6. 用 3FH 系统功能读取文件内容到 BUF 缓冲区。 7. 用对密码处理后得到的值对文件内容进行加密。 8. 用 40H 系统功能将加密后的内容写入到原来文件存储的位置。 9. 用 3EH 系统功能关闭文件。 3. 程序设计框图
开始 显示欢迎词 提示输入文件名 输入文件名 没找到文件,按 r 再试一次 打开文件成功? Y N 保存文件代号 提示输入密码 输入密码(小于 4 位) 密码>4 按 r 再试一次 密码小于 4 ? Y N N N 读取文件内容 读取内容成功? Y 对文件内容进行加密/解密 加密/解密后信息写入文件 写文件成功? Y 关闭文件 提示记住密码 结束
DB ? DW ? DB 256 DUP(?) 4. 源程序清单 DATA SEGMENT STR1 DB 21 STR1A DB ? STR1B DB 21 DUP(?) STR2 DB 10 STR2A DB ? STR2B DB 10 DUP(?) STR3 DW 0 HANDLE DW ? KEY LEN BUF WELCOME DB 0AH,0DH,' ',0AH,0DH,'$' MSG1 DB 0AH,0DH,'Please file:',0AH,0DH,'$' MSG2 DB characters:',0AH,0DH,'$' MSG3 DB 0AH,0DH,'Can not find the file in the document.Knock R(r) to try again:',0AH,0DH,'$' MSG4 DB 0AH,0DH,'Please continue !:',0AH,0DH,'$' MSG5 DB 0AH,0DH,'Please input the password less than 4 characters! Knock R(r) to try again:',0AH,0DH,'$' DATA ENDS CODE SEGMENT 'code' The code system made by meng encode or decode 0AH,0DH,'Please password! Any input the name of the password remember your input the key to less than 4 ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AH,9 LEA INT DX,WELCOME 21H ;显示输入文件名提示语句 REP1: MOV AH,9 DX,MSG1 21H LEA INT MOV AH,10 LEA INT MOV BL,STR1A DX,STR1 21H MOV BH,0
MOV STR1B[BX],0 LEA DX,STR1B MOV AH,3DH MOV AL,02H INT 21H JC ERROR MOV HANDLE,AX ;AL=02 为读/写文件,AH=3DH 是功能号(打开文件) ;显示输入密码提示语句 REP2: MOV AH,9 LEA INT LEA DX,MSG2 21H DX,STR2 MOV AH,10 INT 21H STR2+1,4 ERROR1 CMP JNB MOV AL,STR2+2 ADD AL,STR2+3 ADD AL,STR2+4 MOV KEY,AL REP3: MOV BX,HANDLE ;读文件 MOV CX,255 LEA DX,BUF MOV AH,3FH INT21H JC ERROR CMP AX,0 JZ OVER3 MOV LEN,AX MOV CX,LEN LEA DI,BUF MOV AL,KEY ;AX=实际读到的字符数 ;加密 ENCODE: XOR [DI],AL INCDI LOOP ENCODE MOV DX,STR3 MOV AX,4200H ;移动文件读写指针 INT21H MOV BX,HANDLE MOV CX,LEN LEA DX,BUF
;写文件 MOV AH,40H INT21H JC ERROR MOV AX,LEN ADD STR3,AX JMP MOV BX,HANDLE MOV AH,3EH INT21H REP3 ;关闭文件 ERROR: MOV AH,9 DX,MSG3 LEA INT21H MOV AH,1 INT21H CMP AL,52H REP1 JZ CMP AL,72H JZ REP1 JMP OVER2 ERROR1: LEA DX,MSG5 MOV AH,9 INT 21H MOV AH,1 INT 21H CMP AL,52H Jz CMP AL,72H Jz REP2 REP2 JMP OVER2 OVER1: MOV AH,1 INT21H OVER2: MOV AX,4C00H INT 21H OVER3: MOV AH,9 LEA INT21H JMP DX,MSG4 OVER1 CODE ENDS
END START 5. 程序调试结果及分析 图 1 进入界面 图 2 输入密码加密保存
图 3 原文本 图 4 加密后的文本 图 5 解密后的文本
分享到:
收藏