一、 简介。
文件加密是一种根据要求在操作系统层对写入储存介质的数据进行加密的技术,而汇编语言作为面向机器的语言是学习程序设计必不可少的基础,在这里我们将这两者结合于是就有了基于汇编语言的文件加密系统。
二、 小组成员及具体分工。
本小组有姬文军和孟星宇组成,其中姬文军负责**框架的编写,孟星宇负责功能模块的实现。
三、 需求分析与设计。
无论是国外的**窃听丑闻,还是国内的如家汉庭等大批酒店开房记录泄露以及最近的腾讯群关系数据泄漏都让人们意识到隐私保护的重要性,在学习了本学期的汇编语言设计后我们想到了做一个基于汇编语言的文件加密系统,算是为隐私保护事业做一个小小的贡献吧!
本系统开始要求选择要加密或者解密的文件,然后可以对其进行相应的加密或者解密操作,可以实现对普通文件的加密甚至对**音频的加密操作。
程序设计的大致框图如下:
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...