《文件加密工具》百度网盘资源免费下载:
链接: https://pan.baidu.com/s/14pEAtH1adyHmwgJR9Qx-HQ
?pwd=i4b6 提取码: i4b6数据安全、隐私一直是很多小伙伴比较注重的,现免费分享一款文件加密软件附使态哗衡用教程,此工具能够帮助大家快速进行全新的加密文件帆做 *** 作,也支持移动加密即不同电脑进行芦携加密解密 *** 作,帮助大家管理自己的各种电脑文件,做好电脑的安全防护工作。
本程序通过编译,运行正确Code Segment
Assume CS:Code,DS:Code
-----------------------------------------
功能:显示指定地址(Str_Addr)的字符串
入口:
Str_Addr=字符串地址(要求在数据段)
用法: Output Str_Addr
用法举例:Output PromptStr
Output MACRO Str_Addr
push dx
lea dx,Str_Addr
mov ah,9
int 21h
pop dx
EndM
-----------------------------------------
功能:打开指定路径下的文件。若打开成功,保存文件代号,设置进位标志;
否则,建立文件,保存文件代号,清进位标志
入口参数:dx=文件名地址,bx=文件代号保存地址
Open_File Proc Near
mov ax,3d02h 以读写方式打开文件
int 21h
jc @@Error
mov [bx],ax 成功打开,保存文件代号
stc 设置进位标志
ret
@@Error: Output Open_Error
xor cx,cx 新建文件属性
Create_File:mov ah,3ch 建立文件
int 21h
jc Create_File 建立不成功,尝试再建
mov [bx],ax 成功建立,保存文件代号
clc 清进位标志
ret
Open_File EndP
-----------------------------------------
功能:对字中棚塌符串缓冲区中的内容逐个字符加密
入口参数:si=字符串地址,cx=字符数
Encode_Str Proc Near
push si
push cx
lea di,Handle_File
mov al,[di][88] 读取密钥
@@Encoding: xor byte ptr [si],al 异或,第一步加密
push cx
mov cx,188
rol byte ptr [si],cl 循环左移188位,第二步加密
pop cx
inc si 下一个字符地址
loop @@Encoding 处理下一个字符
pop cx
pop si
ret
Encode_Str EndP
-----------------------------------------
功能:对字符串缓冲区中的内容逐个字符加密
入口参数:si=字符串地址,cx=字符数
Uncode_Str Proc Near
push si
push cx
lea di,Handle_File
mov al,[di][88] 读取密钥
@@Uncoding: push cx
mov cx,188
ror byte ptr [si],cl 循环右移188位,第一步解密
pop cx
xor byte ptr [si],al 异或,第二步解密
inc si 下一个字和慧符地址
loop @@Uncoding 处理下一个字符
pop cx
pop si
ret
Uncode_Str EndP
------------------------------卖圆-----------
Handle_File dw ?,?,? 文件代号
File_Name1 db 'c:\masm\rory00.txt',0 未加密的文本文件
File_Name2 db 'c:\masm\rory01.txt',0 加密后的文本文件
File_Name3 db 'c:\masm\rory02.txt',0 解密后的文本文件
Open_Error db 'Open file error,creat a new file.',13,10,13,10,7,'$'
Input_New db 'Input the new information:',13,10,'$'
Press_Key db 13,10,13,10,'The Encode and Uncode have been completed.',7
db 13,10,13,10,'Press any key to exit...$'
Start: push cs
pop ds
push cs
pop es 使数据段、附加段与代码段同段
-----------------------------------------
打开或建立三个文件
lea dx,Buffer 文本内容处理缓冲区
mov cx,0ffc0h 预留32个字的堆栈空间
sub cx,dx 设置读写一次文件内容的字节数
mov bp,cx 暂存
lea dx,File_Name2 文件名地址
lea bx,Handle_File[2] 文件代号保存地址
call Open_File 打开指定路径下的文件。若打开成功,保存文件代号;否则,建立文件,保存文件代号
lea dx,File_Name3 文件名地址
lea bx,Handle_File[4] 文件代号保存地址
call Open_File
lea ax,@@jump000
push ax
call @@Locate_01
@@Locate_00:lea dx,File_Name1 文件名地址
lea bx,Handle_File 文件代号保存地址
call Open_File
jc Read_File
-----------------------------------------
若是新建文件,输入文件内容,实施加密,写到另一个文件
Input_Str: Output Input_New 提示输入新信息
lea dx,Buffer 文本内容处理缓冲区
mov ah,0ah 键盘输入字符串
int 21h
lea si,Buffer[1] 实际输入的字符个数地址
lodsb 读取实际输入的字符数
test al,0ffh
jz Input_Str 若直接回车,未输入任何字符,再次提示输入新信息
mov dx,si 数据缓冲区地址
mov cl,al 实际输入的字符数
xor ch,ch
mov bx,Handle_File 读取未加密的文本文件代号
Write_Uncod:mov ah,40h
int 21h
jc Write_Uncod 写入失败,尝试再写
call Encode_Str 逐个字符加密
mov dx,si 数据缓冲区地址,要写入的字符数已在cx中
mov bx,Handle_File[2] 文件代号
Write_Coded:mov ah,40h
int 21h
jc Write_Coded 写入失败,尝试再写
jmp @@Uncode
@@Locate_01:pop ax
ret
-----------------------------------------
若成功打开文件,读取文件内容,实施加密,写到另一个文件
Read_File: lea dx,Buffer 文本内容处理缓冲区
mov cx,bp
mov bx,Handle_File 读取未加密的文本文件代号
mov ah,3fh 读文件内容
int 21h
jc Read_File 读文件失败,尝试再读
test ax,0ffffh
jz @@Uncode 若实际读取的字节数为0,结束读写 *** 作
lea si,Buffer
mov cx,ax
call Encode_Str 逐个字符加密
mov dx,si 数据缓冲区地址,要写入的字符数已在cx中
mov bx,Handle_File[2] 读取目标文件代号
Write_File: mov ah,40h 写文件
int 21h
jc Write_File 写文件失败,尝试再写
jmp Read_File
-----------------------------------------
修改子程序Encode_Str和Encode_Str中的循环移位次数
@@jump000: mov byte ptr Encode_Str[13],6
mov byte ptr Uncode_Str[11],6
lea ax,@@Locate_00
push ax
call @@Locate_01
-----------------------------------------
将加密完的内容解密,写入第三个文本文件
@@Uncode: xor dx,dx
xor cx,cx
Loca_Seek1: mov bx,Handle_File[4] 读取解密后的文本文件代号
mov ax,4200h 移动文件指针至文件头
int 21h
jc Loca_Seek1
Loca_Seek2: mov bx,Handle_File[2] 读取加密后的文本文件代号
mov ax,4200h 移动文件指针至文件头
int 21h
jc Loca_Seek2
lea dx,Buffer 文本内容处理缓冲区
Read_File1: mov cx,bp
mov bx,Handle_File[2] 读取加密后的文本文件代号
mov ah,3fh 读文件内容
int 21h
jc Read_File1 读文件失败,尝试再读
test ax,0ffffh
jz Close_File1 若实际读取的字节数为0,结束读写 *** 作,关闭文件
lea si,Buffer
mov cx,ax
call Uncode_Str 逐个字符解密
mov dx,si 数据缓冲区地址,要写入的字符数已在cx中
mov bx,Handle_File[4] 读取解密后的文本文件代号
Write_File1:mov ah,40h 写文件
int 21h
jc Write_File1 写文件失败,尝试再写
jmp Read_File1
Close_File1:mov bx,Handle_File 读取未加密的文本文件代号
mov ah,3eh 关闭文件
int 21h
jc Close_File1
Close_File2:mov bx,Handle_File[2] 读取加密后的文本文件代号
mov ah,3eh 关闭文件
int 21h
jc Close_File2
Close_File3:mov bx,Handle_File[4] 读取解密后的文本文件代号
mov ah,3eh 关闭文件
int 21h
jc Close_File3
Output Press_Key 提示 *** 作完成,按任意键结束程序
mov ah,1
int 21h
Exit_Proc: mov ah,4ch 结束程序
int 21h
ALIGN 10h 节对齐
Buffer db 255 文本内容处理缓冲区
Code ENDS
END Start 编译到此结束
'图上的控件团瞎,你就照着摆上去,然后再宏友把以下代码拷进去,就OK了Dim lg As Integer
'加密
Private Sub Command1_Click()
Text2 = ""
Dim a(), b() As String
lg = Len(Text1)
ReDim a(lg), b(lg)
For i = 1 To lg
a(i) = Mid(Text1, i, 1)
b(i) = AscW(a(i)) Xor 4
Text2 = Text2 &ChrW(b(i))
Next
End Sub
'解密
Private Sub Command2_Click()
Text3 = "蔽或槐"
Dim a(), b() As String
lg = Len(Text2)
ReDim a(lg), b(lg)
For i = 1 To lg
a(i) = Mid(Text2, i, 1)
b(i) = AscW(a(i)) Xor 4
Text3 = Text3 &ChrW(b(i))
Next
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)