V1代码:
uses dos;
var c:char;
m,s2:string;
s:ansistring;
f3:file of char;
f,f2:text;
d,i,j:longint;
size:qword;
function jamchr(c,c2:char):char;
begin
inc(c,ord(c2));
exit(c);
end;
function jemchr(c,c2:char):char;
begin
dec(c,ord(c2));
exit(c);
end;
procedure chrkey(s:string);
begin
readln(c);
while pos(c,s)=0 do readln(c);
end;
procedure clrscr;
begin
exec('cmd','/c cls');
end;
procedure jam;
begin
clrscr;
write('请输入要加密的文件的路径:');
readln(s);
if fsearch(s,'')='' then exit;
assign(f3,s);
reset(f3);
size:=filesize(f3);
close(f3);
assign(f,s);
reset(f);
s:=s+'.xmm';
if fsearch(s,'')<>'' then begin
writeln(s,'已存在,如果继续进行则会失去该文件的原内容。现在您可以进行备份。');
writeln('继 续(1)');
writeln('返回菜单(2)');
chrkey('12');
if c='2' then begin
close(f);
exit;
end;
end;
i:=0;
write('请输入要加密的文件的密码:');
readln(m);
if m='' then exit;
d:=length(m);
writeln('加密中······');
assign(f2,s);
rewrite(f2);
write(f2,jamchr(chr(d),m[i+1]));
for j:=1 to d do begin
i:=(i+1)mod d;
write(f2,jamchr(m[j],m[i+1]));
end;
while size>0 do begin
i:=(i+1)mod d;
read(f,c);
write(f2,jamchr(c,m[i+1]));
dec(size);
end;
close(f);
close(f2);
c:='1';
write('加密完成。');
readln;
end;
procedure jem;
begin
clrscr;
write('请输入要解密的文件的路径:');
readln(s);
if (fsearch(s,'')='')or(copy(s,length(s)-3,4)<>'.xmm') then exit;
assign(f3,s);
reset(f3);
size:=filesize(f3);
close(f3);
assign(f,s);
reset(f);
delete(s,length(s)-3,4);
if fsearch(s,'')<>'' then begin
writeln(s,'已存在,如果继续进行则会失去该文件的原内容。现在您可以进行备份。');
writeln('继 续(1)');
writeln('返回菜单(2)');
chrkey('12');
if c='2' then begin
close(f);
exit;
end;
end;
write('请输入要解密的文件的密码:');
readln(m);
if m='' then exit;
d:=length(m);
i:=0;
read(f,c);
dec(size);
c:=jemchr(c,m[i+1]);
if ord(c)<>d then begin
write('密码错误,为防止强制破解密码,请回到主菜单。');
close(f);
readln;
c:='1';
exit;
end;
s2:='';
for j:=1 to d do begin
i:=(i+1)mod d;
read(f,c);
s2:=s2+jemchr(c,m[i+1]);
end;
dec(size,d);
if s2<>m then begin
write('密码错误,为防止强制破解密码,请回到主菜单。');
close(f);
readln;
c:='1';
exit;
end;
assign(f2,s);
rewrite(f2);
writeln('解密中······');
while size>0 do begin
i:=(i+1)mod d;
read(f,c);
write(f2,jemchr(c,m[i+1]));
dec(size);
end;
close(f);
close(f2);
c:='1';
write('解密完成。');
readln;
end;
begin
exec('cmd','/c title 文件加密V1');
clrscr;
c:='1';
while pos(c,'123')>0 do begin
clrscr;
writeln('文件密码软件V1');
writeln('加密文件(1)');
writeln('解密文件(2)');
writeln('查看版权(3)');
writeln('退出软件(4)');
chrkey('1234');
case c of
'1':jam;
'2':jem;
'3':begin
clrscr;
writeln('软件制作:徐一凡');
writeln('代码版权:作者');
writeln('联系:百度贴吧“徐一凡_exe” 邮箱“
[email protected]”');
writeln('对于关于本软件代码的一切查看、修改,均要经作者同意。');
readln;
end;
end;
clrscr;
end;
end.