Конференция "Начинающим" » hmac(sha1) Tidbytes to string как? [D7, XP]
 
  • vegarulez © (07.06.16 22:50) [0]
    не могу понять почему в edit_hmac.Text пустота...
    Подскажите, вроде всё делаю верно.
    function EncryptHMACSha1(Input, AKey: string): TIdBytes;
    begin
     with TIdHMACSHA1.Create do
     try
       Key := ToBytes(AKey);
       Result := HashValue(ToBytes(Input));
     finally
       Free;
     end;
    end;

    procedure TForm1.btn_hmacClick(Sender: TObject);
    var
     t: TIdBytes;
    begin
     t := EncryptHMACSha1('test', edit_pswd.Text);
     edit_hmac.Text := BytesToString(t, 0, MaxInt);
    end;

  • vegarulez © (13.06.16 14:33) [1]
    Вроде всё получилось. Хэш hmac(sha-1) собрал. ToHex вместо BytesToString и всё заработало. Только резульата по умолчанию UpperCase поэтому для полного счастья LowerCase

    function EncryptHMACSha1(Input, AKey: string): TIdBytes;
    begin
     with TIdHMACSHA1.Create do
     try
       Key := ToBytes(AKey);
       Result := HashValue(ToBytes(Input));
     finally
       Free;
     end;
    end;

    procedure TForm1.btn_hmacClick(Sender: TObject);
    var
     t: TIdBytes;
    begin
     t := EncryptHMACSha1('test', edit_pswd.Text);
     edit_hmac.Text := LowerCase(ToHex(t));
     //edit_hmac.Text := BytesToString(t, 0, MaxInt);
    end;



    Кому надо вот ссылка для проверки:
    http://www.freeformatter.com/hmac-generator.html#ad-output
  • vegarulez © (13.06.16 15:50) [2]
    Вернее даже так(для удобства):


    function EncryptHMACSha1(Input, AKey: string): string;
    begin
     with TIdHMACSHA1.Create do
     try
       Key := ToBytes(AKey);
       Result := LowerCase(ToHex(HashValue(ToBytes(Input))));
     finally
       Free;
     end;
    end;

    procedure TForm1.btn_hmacClick(Sender: TObject);
    begin
     edit_hmac.Text :=EncryptHMACSha1(edit_data_hmac.Text, edit_pswd.Text);
    end;

  • vegarulez © (13.06.16 15:56) [3]
    использовались indy 10 и ессно не забудьте добавить в uses :

    uses
    IdHMACSHA1, IdGlobal

    ну и еессно чтобы в либах пути были до файлов
    IdHMACSHA1.dcu, IdHMACSHA1.pas,
    IdGlobal.dcu, IdGlobal.pas
 
Конференция "Начинающим" » hmac(sha1) Tidbytes to string как? [D7, XP]
Есть новые Нет новых   [134427   +34][b:0][p:0.001]