AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mit LockBox10 für XE7 Hashstring erzeugen

Ein Thema von Perlsau · begonnen am 23. Feb 2015 · letzter Beitrag vom 23. Feb 2015
Antwort Antwort
Perlsau
(Gast)

n/a Beiträge
 
#1

AW: Mit LockBox10 für XE7 Hashstring erzeugen

  Alt 23. Feb 2015, 09:47
Danke für deine Antwort. Bislang hab ich mal folgenden Funktionsrumpf erstellt:
Delphi-Quellcode:
// ----- Liefert den Hashwert des übergebenen Strings zurück ---------------------------------------------------------------------
Function GetHashedString(Const Awort : String) : String;
Var
  LBH : TLbSHA1;

Begin
  LBH := TLbSHA1.Create(Nil);
  Try
    LBH.HashString(Awort);
    Result := '???';
  Finally
    LBH.Free;
  End;
End;
Wie geht's nun weiter?
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.757 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Mit LockBox10 für XE7 Hashstring erzeugen

  Alt 23. Feb 2015, 09:51
.. der Hash liegt in LBH.HashOutputValue
Siehe auch: http://codeverge.com/embarcadero.del...-fails/1070398

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#3

AW: Mit LockBox10 für XE7 Hashstring erzeugen

  Alt 23. Feb 2015, 09:57
Das mag vielleicht für LockBox3 zutreffen, in LockBox10 (der Version für XE7, die auch mit IOS und Android kompatibel ist), gibt es dieses Property leider nicht. Könnte der berechnete Hash vielleicht im HashBuffer liegen?

Übrigens hab ich einige Stunden lang all diese Hinweise, die Google liefert, bereits erfolglos abgegrast, bevor ich hier anfragte
Angehängte Grafiken
Dateityp: jpg HashOutputValue.jpg (44,7 KB, 12x aufgerufen)

Geändert von Perlsau (23. Feb 2015 um 10:00 Uhr) Grund: Nachtrag
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.757 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Mit LockBox10 für XE7 Hashstring erzeugen

  Alt 23. Feb 2015, 10:07
.. dann vielleicht getDigest?

Delphi-Quellcode:
 TLbSHA1 = class(TLbHash)
  strict private
    FDigest : TSHA1Digest;
  public
    procedure GetDigest(var Digest : TSHA1Digest);

    procedure HashBuffer(const Buf; BufSize : Cardinal); override;
    procedure HashFile(const AFileName: string); override;
    procedure HashStream(AStream: TStream); override;
    procedure HashString(const AStr: string); override;
  end;
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#5

AW: Mit LockBox10 für XE7 Hashstring erzeugen

  Alt 23. Feb 2015, 10:21
... oder vielleicht auch nicht?

TSHA1Digest ist ein Array[0..19] of byte. Wenn dort der Hashstring drin wäre, dann könnte der ja immer nur höchstens 20 Zeichen lang sein. Das erscheint mir fragwürdig. Soweit ich weiß, sind Hash-Strings gewöhnlich um einiges länger. Und wie sollte man aus diesem Array dann einen Hash-String erzeugen?

Hat denn wirklich noch niemand mit LockBox10 gearbeitet?
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Mit LockBox10 für XE7 Hashstring erzeugen

  Alt 23. Feb 2015, 10:30
Darüber bin ich kürzlich auch gestolpert.
Das, was wir im Allgemeinen als SHA1-Hash zu lesen bekommen, ist die hexcodierte Variante dieser 20 Bytes. Wenn Du Dein Byte-Buffer in Hex (z.B. IntToHex()) wandelst, sollte etwas herauskommen, das dem Auge vertraut ist.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Mit LockBox10 für XE7 Hashstring erzeugen

  Alt 23. Feb 2015, 10:36
Wenn man weiß, was ein Hashwert ist und woraus ein Hashwert ausschließlich gebildet werden kann, dann ist alles viel klarer:
Zitat:
Ein Hashwert wird ausschließlich aus Bytefolgen erzeugt und der Hashwert selber ist auch eine Bytefolge.
Was man dann aus dieser Bytefolge macht (Malen nach Zahlen, in einen HexString umwandeln, ...) ist dann reine Präsentation der Bytefolge. Nicht mehr, nicht weniger.

Ein Hauptgrund, warum die meisten beim Hashen auf die Nase fallen "Delphi-PHP", "Delphi-C#", .... liegt daran, dass man beim Hashen das Encoding (String -> Bytefolge) mal nicht beachtet und Delphi nimmt dann UTF-16 und der Rest (meistens) UTF-8 => Zonk.

Über diese Dinge sollte man sich im Klaren sein ... dann klappt es auch mit dem Hashen.

Also, was für eine Hashwert-String-Repräsentation soll den rauskommen?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#8

AW: Mit LockBox10 für XE7 Hashstring erzeugen

  Alt 23. Feb 2015, 10:55
@Daniel & @SirRufo & @Klaus01
Okay, das war's dann wohl
Delphi-Quellcode:
Function GetHashedString(Const Awort : String) : String;
Var
  LBH : TLbSHA1;
  LBD : TSHA1Digest;
  i : Integer;
Begin
  Result := '';
  LBH := TLbSHA1.Create(Nil);

  Try
    LBH.HashString(Awort);
    LBH.GetDigest(LBD);
    For i := 0 To 19 Do
      Result := Result + IntToHex(LBD[i],2);
  Finally
    LBH.Free;
  End;
End;
Damit hab ich einen Hash-String, den ich verwenden kann: Bei gleichem Ausgangsstring wird jetzt immer derselbe Hashwert erzeugt. Prima und danke
Angehängte Grafiken
Dateityp: jpg HashStringTest.jpg (17,7 KB, 16x aufgerufen)

Geändert von Perlsau (23. Feb 2015 um 11:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.066 Beiträge
 
Delphi 12 Athens
 
#9

AW: Mit LockBox10 für XE7 Hashstring erzeugen

  Alt 23. Feb 2015, 11:25
Hat denn wirklich noch niemand mit LockBox10 gearbeitet?
Wenn ich mich recht erinnere, hat Roman mir vor ein paar Wochen erzählt, daß LockBox10 auf dem TurboPower LockBox2 basiert. Vielleicht hilft dir dann ja das Manual für LockBox2 weiter.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#10

AW: Mit LockBox10 für XE7 Hashstring erzeugen

  Alt 23. Feb 2015, 12:18
Oh, danke, Uwe, das ist sehr freundlich von dir

Werde ich bestimmt noch brauchen können
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz