超级加密3000有超快和最强的文件、文件夹加密功能、数据保护功能,文件夹、文件的粉碎删除以及文件夹伪装等功能。
超级加密 3000采用先进的加密算法,使你的文件和文件夹加密后,真正的达到超高的加密强度,让你的加密数据无懈可击。
超级加密3000还支持加密文件的临时解密,文件加密后,双击加密文件,在d出密码输入对话框输入正确的密码选择确定,该加密文件就处于临时解密,文件使用完毕退出以后,它自动恢复到加密状态,无需再加密。
超级加密3000是一款不可多得的文件加密软件,您可以到百度上搜索超级加密3000给您的文件加密试试看。
我以前也做过这种小程序。这个算法你可以自己设计,也可以用像什么MD5之类的加解密算法咯。但因为不能粘贴附件,所以就贴点代码。
procedure TForm1.N2Click(Sender: TObject)//打开文件
var
tl:string
begin
if OpenDialog1.Execute then
begin
ListBox1.Clear
Caption:='文件加密解密器'+OpenDialog1.FileName
AssignFile(ATextFile,OpenDialog1.FileName)
Reset(ATextFile)
while not eof(ATextFile) do
begin
Readln(ATextFile,tl)
ListBox1.Items.Add(tl)
end
CloseFile(ATextFile)
end
end
function Encode(s:string):string//加密的核心部分
var
n,i:integer
str:string
begin
n:=length(s)
str:=''
for i:=1 to n do
begin
str:=str+char(ord(s[i])+10)
end
Encode:=str
end
function Decode(s:string):string//解密的核心部分
var
n,i:integer
str:string
begin
n:=length(s)
str:=''
for i:=1 to n do
begin
str:=str+char(ord(s[i])-10)
end
Decode:=str
end
procedure TForm1.N3Click(Sender: TObject)//加密
var
ln:integer
tl,nl:string
begin
if SaveDialog1.Execute then
begin
AssignFile(ATextFile,SaveDialog1.FileName)
Rewrite(ATextFile)
for ln:=0 to ListBox1.Items.Count-1 do
begin
tl:=ListBox1.Items[ln]
nl:=Encode(tl)//加密
Writeln(ATextFile,nl)
end
CloseFile(ATextFile)
end
end
procedure TForm1.N4Click(Sender: TObject)//解密
var
ln:integer
tl,nl:string
begin
if SaveDialog1.Execute then
begin
AssignFile(AtextFile,SaveDialog1.FileName)
Rewrite(ATextFile)
for ln:=0 to ListBox1.Items.Count-1 do
begin
tl:=ListBox1.Items[ln]
nl:=Decode(tl)//解密
Writeln(ATextFile,nl)
end
CloseFile(ATextFile)
end
end
文件加密解密 函数{ -- 文件加密函数 默认按照 128 位密匙解密 -- }
procedure EncryptFile(SourceFile, DestFile: string
Key: stringKeyBit: TKeyBit = kb128)
var
SFS, DFS: TFileStream
Size: Int64
AESKey128: TAESKey128
AESKey192: TAESKey192
AESKey256: TAESKey256
begin
SFS := TFileStream.Create(SourceFile, fmOpenRead)
try
DFS := TFileStream.Create(DestFile, fmCreate)
try
Size := SFS.Size
DFS.WriteBuffer(Size, SizeOf(Size))
{ -- 128 位密匙最大长度为 16 个字符 -- }
if KeyBit = kb128 then
begin
FillChar(AESKey128, SizeOf(AESKey128), 0 )
Move(PChar(Key)^, AESKey128, Min(SizeOf(AESKey128), Length(Key)))
EncryptAESStreamECB(SFS, 0, AESKey128, DFS)
end
{ -- 192 位密匙最大长度为 24 个字符 -- }
if KeyBit = kb192 then
begin
FillChar(AESKey192, SizeOf(AESKey192), 0 )
Move(PChar(Key)^, AESKey192, Min(SizeOf(AESKey192), Length(Key)))
EncryptAESStreamECB(SFS, 0, AESKey192, DFS)
end
{ -- 256 位密匙最大长度为 32 个字符 -- }
if KeyBit = kb256 then
begin
FillChar(AESKey256, SizeOf(AESKey256), 0 )
Move(PChar(Key)^, AESKey256, Min(SizeOf(AESKey256), Length(Key)))
EncryptAESStreamECB(SFS, 0, AESKey256, DFS)
end
finally
DFS.Free
end
finally
SFS.Free
end
end
-----------------------
给分后放出解密函数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)