写博客的感觉真的很好 . 秀我家园我的

   
时间记忆
日志分类
用户公告
赞助商广告
用户登录
我的相册
最新日志
最新评论
最新回复
我的好友
友情链接
日志查询
站点信息
© Powered by showmyhouse.com.cn.
 
2008-6-10 15:12:00
DELPHI简单加密算法
program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;

const
Key='TESTNET';
Cryptograph='100';

//不能为0.5,相加为1
Percent1=0.21;
Percent2=0.79;

var
s1:string;
function GetKey(aKey:string;aPercent:Double):string;
var
i:integer;
begin
SetLength(Result,Length(aKey));
for i:=1 to Length(aKey) do
begin
Result[i]:=Chr(Round(Ord(aKey[i])*aPercent));
end;
end;

function EnCode(aCryptograph,aKey:string):string;
var
i,keylen,codelen:integer;
begin
keylen:=Length(akey);
codelen:=Length(aCryptograph);
SetLength(Result, Length(aCryptograph));
for i:=1 to codelen do
begin
Result[i]:=Chr(Ord(aCryptograph[i])+Ord(aKey[(i mod KeyLen)+1]));
end;
end;

function DeCode(aCryptograph,aKey:string):string;
var
i,keylen,codelen:integer;
begin
keylen:=Length(akey);
codelen:=Length(aCryptograph);
SetLength(Result, Length(aCryptograph));
for i:=1 to codelen do
begin
Result[i]:=Chr(Ord(aCryptograph[i])-Ord(aKey[(i mod KeyLen)+1]));
end;
end;

begin
{ TODO -oUser -cConsole Main : Insert code here }

WriteLn('要加密的文字');
WriteLn(Cryptograph);
WriteLn;

WriteLn('密码经过第一个网络');
s1:=EnCode(Cryptograph,GetKey(Key,Percent1));
WriteLn(s1);
WriteLn;

WriteLn('密码经过第二个网络');
s1:=EnCode(s1,GetKey(Key,Percent2));
WriteLn(s1);
WriteLn;

WriteLn('还原');
s1:=DeCode(s1,Key);
WriteLn(s1);
WriteLn;
ReadLn;
end.
Colin | 阅读全文 | 回复(0) | 引用通告 | 编辑
发表评论:
Powered by Oblog.