各位:
     我没学过delphi语言,但是这个里面的这个算法我要用到。我用的其他的语言,想各位懂的同仁能不能在后面都备注个意思。
帮我翻译一下。我好尝试按我的语言写。如果能够直接翻译成VB就好,我不大清楚,查资料好像是delphi的很多控制之类的VB不支持,所以有些简单的可以翻译,深层的就不能了吧。不知道这个能不能直接翻译过来。如果不能就帮我在后面像那样 备注下意思 。多谢各位。请帮忙program getpass; {$APPTYPE CONSOLE} uses 
   SysUtils, 
   Registry, 
   Windows; var 
   Reg: TRegistry;   '变量 REG:类型为 TRegistry
   buf: PByteArray;  '变量 buf:类型为 PBytearray
   size: Integer;    '变量 size:整数型
   mask: array[0..19] of Byte = ($61, $D6, $D4, $E9, $DD, $F0, $FB, $F2, $5B, $64, $35, $AD, $B7, $C8, $19, $75, $EC, $31, $2B, $BC);    i: integer; '变量 i:类型为 整数型
   username, password: string;   '变量 username,password:类型为 字节型
begin 
   try 
      Reg := TRegistry.Create; 
      try 
         Reg.RootKey := HKEY_LOCAL_MACHINE; 
         if Reg.OpenKeyReadOnly('SOFTWARE\Eset\Nod\CurrentVersion\Modules\Update\Settings\Config000\Settings') then 
         begin 
            username := Reg.ReadString('Username'); 
            size := Reg.GetDataSize('Password'); 
            GetMem(buf, size); 
            Reg.ReadBinaryData('Password', buf^, size);             i := 0;             while i < size - 1 do 
            begin 
               password := password + chr(buf[i] xor mask[i]); 
               Inc(i, 2); 
            end;             WriteLn('Username: ' + username); 
            WriteLn('Password: ' + password); 
         end; 
      finally 
         Reg.CloseKey; 
         Reg.Free; 
      end; 
   except 
      on E: Exception do 
         Writeln(E.Classname, ': ', E.Message); 
   end; 
end. 

解决方案 »

  1.   

    将用户名和密码从注册表HKEY_LOCAL_MACHINE、SOFTWARE\Eset\Nod\CurrentVersion\Modules\Update\Settings\Config000\Settings里读出来
      

  2.   

    嗯 我知道是从注册表读出密码来但是密码是加密成了 (61, D6, D4, E9, DD, F0, FB, F2, 5B, 64, 35, AD, B7, C8, 19, 75, EC, 31, 2B, BC); 这个程序是将密码还原的,不清楚那段换算的意思
      

  3.   

    while i < size - 1 do 
                begin 
                  password := password + chr(buf[i] xor mask[i]); 
                  Inc(i, 2); 
                end; 难道是这句?应该是异或再转换成字符,拼成字符串吧
      

  4.   


    对就是这句 这个 password + chr(buf[i] xor mask[i]);  chr(buf[i] 和 mask[i]) 这两个值异或比较 这两个值分别是什么意思呢?