汇编文件加密大作业

发布 2022-07-17 08:44:28 阅读 2151

一、 简介。

文件加密是一种根据要求在操作系统层对写入储存介质的数据进行加密的技术,而汇编语言作为面向机器的语言是学习程序设计必不可少的基础,在这里我们将这两者结合于是就有了基于汇编语言的文件加密系统。

二、 小组成员及具体分工。

本小组有姬文军和孟星宇组成,其中姬文军负责**框架的编写,孟星宇负责功能模块的实现。

三、 需求分析与设计。

无论是国外的**窃听丑闻,还是国内的如家汉庭等大批酒店开房记录泄露以及最近的腾讯群关系数据泄漏都让人们意识到隐私保护的重要性,在学习了本学期的汇编语言设计后我们想到了做一个基于汇编语言的文件加密系统,算是为隐私保护事业做一个小小的贡献吧!

本系统开始要求选择要加密或者解密的文件,然后可以对其进行相应的加密或者解密操作,可以实现对普通文件的加密甚至对**音频的加密操作。

程序设计的大致框图如下:

noyes

四、 **及分析。

fopen macro filename,type,handle

mov al,type

mov ah,3dh

lea dx,filename

int 21h

mov handle,ax

endmpianyi macro handle

mov ah,42h

mov bx,handle

mov dx,-1

mov cx,-1

mov al,1

int 21h

endmfwrite macro handle,buffer,size

mov ah,40h

mov bx,handle

mov cx,size

lea dx,buffer

int 21h

endmfread macro handle,buffer,size

mov ah,3fh

mov bx,handle

mov cx,size

lea dx,buffer

int 21h

endm fclose macro handle

mov ah,3eh

mov bx,handle

int 21h

endmpause macro

mov ah,07h

int 21h

endmquit macro

mov ax,4c00h

int 21h

endmprint macro msg

mov dx,offset msg

mov ah,09h

int 21h

endmgets macro msg

lea dx,msg

mov ah,0ah

int 21h

endmdata segment

ask db 'input the times:$'

buffer db

finptr db 20

fname_in db 20 dup

handle_in dw

error1 db "open file error!",0dh,0ah

quit_msg db "press any key to continue...

in_msg1 db "input the source file name:",0dh,0ah

succmsg1 db "encry successfully!",0dh,0ah,'$

succmsg2 db "decry successfully!",0dh,0ah,'$

op_msg1db 0dh,0ah

dbencry and decry0dh,0ah

db1-encry,2-decry,other-quit0dh,0ah

db0dh,0ah

dbplease choice0dh,0ah

db"*your choice :"

lines db 0dh,0ah,'$

oprand db

data ends

code segment

assume cs:code,ds:data,es:data

start:

main proc far

mov ax,data

mov ds,ax

mov es,ax

start_loop:

print op_msg1

mov ah,01h

int 21h

mov oprand,al

print lines

cmp oprand,'1

jz input_src_fname

cmp oprand,'2'

jz input_src_fname

jmp exit

input_src_fname:

print in_msg1

gets finptr

lea bx,fname_in

mov al,finptr[1

mov ah,0

add bx,ax

mov byte ptr [bx],0

print lines

fopen fname_in,2,handle_in

jnc lg

print error1

jmp start_loop

lg: cmp oprand,'2'

jz start_decry

start_encry:

call encryex

jmp start_loop

start_decry:

call decryex

jmp start_loop

exit:print quit_msg

pausequit

main endp

加密模块。encryex proc near

encryex_start:

fread handle_in,buffer,1

cmp ax,cx

jb encryex_end

pianyi handle_in

call encry

fwrite handle_in,buffer,1 jmp encryex_start

encryex_end

print lines

fclose handle_in

print succmsg1

retencryex endp

decryex proc near

decryex_start:

fread handle_in,buffer,1

cmp ax,cx

jb decryex_end

pianyi handle_in

call decry

fwrite handle_in,buffer,1

jmp decryex_start

decryex_end

print lines

fclose handle_in

print succmsg2

retdecryex endp

加密算法子程序。

encry proc near

mov bl,0aah

lea si,buffer

encry_start

mov bh,[si]

add bh,bl

mov [si],bh

inc si

retencry endp

解密算法子程序。

decry proc near

mov bl,0aah

lea si,buffer

decry_start

mov bh,[si]

sub bh,bl

mov [si],bh

inc si

retdecry endp

code ends

end start

5、运行结果。

1、文件加密前:

加密操作:加密后:

加密操作:加密后:

3、**加密后:

六、总结。通过大作业的实验设计才发现汇编的强大,对于基层设计汇编的重要性凸显,而且通过实验对于汇编语言设计的原理也有了进一步的理解,同时通过课程设计也对汇编提高了兴趣。

文件检索大作业

乙肝 药物研究。b09350130 工业工程 1 朱耀乐。1.确定该项目的原因 乙肝患者还是比较常见的,高中大学都有几个同学得过乙肝,所以还是有点了解的,现在来查找一些比较有效的能抑制乙肝的药物。乙型病毒性肝炎是由乙肝病毒 hbv 引起的 以肝脏炎性病变为主并可引起多器官损害的一种病。本病广泛流行于...

汇编大作业

汇编语言 期末大作业。一 通过键盘输入月份 月份在1 12之间,要求验证所输入月份的合法性,按 e 或 e 键表示程序结束 在屏幕上显示对应该月份的英文单词 返回 data segment state1 db please input your search month 0dh,0ah,state2...

作业指导文件汇编汇总

作业指导文件清单。1.岗位工作人员任职要求xly za 0 01 2012 3 2.电器操作规程xly za 0 02 2012 5 3.酸洗磷化作业指导书xly za 0 03 2012 10 4.二次配线作业指导书xly za 0 04 2012 13 5.喷漆喷朔作业指导书xly za 0 0...