小鸟 这是一个口令加密的自定义函数,有哪位高手能够解答每行代码的含义,要详细点.谢了

小鸟求助: 这是一个口令加密的自定义函数,有谁能够解答每行代码的含义,要详细点.谢了
Function kljm (var Djmkl: String): String;
var i: integer;
  kl: string;
  k: integer;
  
begin
kl:='';
For i:= 1 To Length(Djmkl) do
begin
  k:=ord(Djmkl[i]);
  If (k >= 42) And (k <= 100) Then
  begin
  k:= k - 9;
  end
  Else
  begin
  If (k < 42) And (k >= 32) Then
  begin
  k:= k + 10;
  end
  Else
  begin
  If (k > 100) And (k < 127) Then
  k:= k - 11;
  end;
  If k = 39 Then
  k:= k + 1 ;
  end;
  kl:= kl + char(k);
end;
Kljm:= kl;
end;

------解决方案--------------------
................
------解决方案--------------------
[code=Delphi(Pascal)][/code]
var
[/code]
------解决方案--------------------
把字符串按位取asc,如果是字符就把asc加10如果是大写字母就-11如果是39就+1.......
------解决方案--------------------
Delphi(Pascal) code
Function kljm (var Djmkl: String): String; 
var 
  i: integer; 
  kl: string; 
  k: integer;    
begin 
  kl:= ' '; 
  For i:= 1 To Length(Djmkl) do               //循环字符串的每个字符
  begin 
    k:=ord(Djmkl[i]);                         //求字符的Ascii码
     //以下都是根据Ascii码范围进行移位处理
     //Ascii码表参见:[url=http://www.dqdn.cn/c/fl/js601.asp][/url]
    If (k  >= 42) And (k  <= 100) Then        
    begin 
      k:= k - 9; 
    end 
    Else 
    begin 
      If (k  < 42) And (k  >= 32) Then 
      begin 
        k:= k + 10; 
      end 
      Else 
      begin 
        If (k  > 100) And (k  < 127) Then 
          k:= k - 11; 
      end; 
      If k = 39 Then 
        k:= k + 1 ; 
    end;
    //移位end 
    kl:= kl + char(k); 
  end;
  Kljm:= kl;            //字符串中各字符移位后所得字符串
end;