飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5588|回复: 6

一个很简单的加密算法

[复制链接]
  • TA的每日心情
    开心
    2019-9-19 16:05
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2007-2-12 10:29:10 | 显示全部楼层 |阅读模式
    当时见到一张帖子即兴写了这段代码,还没认真调试过

    1. program Project1;

    2. {$APPTYPE CONSOLE}

    3. uses
    4.   SysUtils;

    5. const
    6.   Key='TESTNET';
    7.   Cryptograph='有些事还是不知为妙';

    8. //不能为0.5,相加为1
    9.   Percent1=0.21;
    10.   Percent2=0.79;

    11. var
    12.   s1:string;
    13. function GetKey(aKey:string;aPercent:Double):string;
    14. var
    15.   i:integer;
    16. begin
    17.   SetLength(Result,Length(aKey));
    18.   for i:=1 to Length(aKey) do
    19.   begin
    20.     Result[i]:=Chr(Round(Ord(aKey[i])*aPercent));
    21.   end;
    22. end;

    23. function EnCode(aCryptograph,aKey:string):string;
    24. var
    25.   i,keylen,codelen:integer;
    26. begin
    27.   keylen:=Length(akey);
    28.   codelen:=Length(aCryptograph);
    29.   SetLength(Result, Length(aCryptograph));
    30.   for i:=1 to codelen do
    31.   begin
    32.     Result[i]:=Chr(Ord(aCryptograph[i])+Ord(aKey[(i mod KeyLen)+1]));
    33.   end;
    34. end;

    35. function DeCode(aCryptograph,aKey:string):string;
    36. var
    37.   i,keylen,codelen:integer;
    38. begin
    39.   keylen:=Length(akey);
    40.   codelen:=Length(aCryptograph);
    41.   SetLength(Result, Length(aCryptograph));
    42.   for i:=1 to codelen do
    43.   begin
    44.     Result[i]:=Chr(Ord(aCryptograph[i])-Ord(aKey[(i mod KeyLen)+1]));
    45.   end;
    46. end;

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

    49.   WriteLn('要加密的文字');
    50.   WriteLn(Cryptograph);
    51.   WriteLn;

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

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

    60.   WriteLn('还原');
    61.   s1:=DeCode(s1,Key);
    62.   WriteLn(s1);
    63.   WriteLn;
    64.   WriteLn('如果要在VCL控件中显示,还要对#0进行处理,'+
    65.            '因为VCL中大部分函数以#0作为结束标记');
    66.   ReadLn;
    67. end.
    复制代码
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-3-15 21:05
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2007-2-25 11:12:02 | 显示全部楼层
    看不太明白/:?
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-2-25 15:43:02 | 显示全部楼层
    看不懂,哈哈!!!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-2-25 20:34:17 | 显示全部楼层
    DELPHI
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-2-25 23:21:51 | 显示全部楼层
    原帖由 yousee 于 2007-2-25 15:43 发表
    看不懂,哈哈!!!

    、、

    ;P ;P 是一点都看不懂!1
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-2-26 16:45:04 | 显示全部楼层
    晚点用这个写个CM出来给大家玩玩~~;P
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-3-23 20:59:17 | 显示全部楼层
    这段时间在学D,先收藏了
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表