AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 18:47

Parameter dieser Suchanfrage:

Suche in Thema: DEC 5.2 String hashen?
Suche alle Beiträge, die von "Michael II" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 25 von insges. 25 Treffern
Suche benötigte 0.001s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 7. Mai 2017
    Wenn du den in einem Byte gespeicherten Wert im hex System interpretieren und als Zeichenkette speichern willst, dann benötigst du pro Byte 2 Zeichen (aus {0..9,A..B} ).

    Wenn du den in einem Byte gespeicherten Wert im binären System interpretieren und als Zeichenkette speichern willst, dann benötigst du pro Byte 8 Zeichen ( aus {0..1} ).


    TBytesStream oder TFileStream?
    (siehe auch weiter...
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 6. Mai 2017
    Ich glaube du bezeichnest den "Byte Array" als Salat:

    Salat:
    (212, 29, 140, 217, 143, 0, 178, 4, 233, 128, 9, 152, 236, 248, 66, 126)

    hex
    'd41d8cd98f00b204e9800998ecf8427e'

    In einem Byte kannst du die binären Werte 00000000..11111111 speichern, dezimal geschrieben die Werte von 0..255 und hex 00 bis ff .
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 5. Mai 2017
    Es ist gerade umgekehrt. SHA1 liefert 20 Bytes und diese 20 Bytes werden dann typischerweise (wenn du den Wert in irgend einer Arbeit o.ä. druckst) als hex Wert dargestellt.

    Wenn du dir also deine Bytes lieber hex anschaust, dann wandle sie doch einfach um:

    function TBytesToHex( b : TBytes ) : RawByteString;
    var i : integer;
    begin
    Result := '';
    for i := 0 to length(b)-1 do Result...
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 5. Mai 2017
    Du machst einen Fehler SHA1 liefert 160Bit/20Byte Werte. Du musst also
    hash := GetSHA1HashFromFile( filename, );
    berechnen, wenn du den Hash Wert des Files ohne den angehängten (20 Byte) Hash Wert berechnen willst.

    So geht's:

    SHA1 ans Ende des Files schreiben durch Aufruf von
    procedure SchreibeSHA1HashAnsEndeDesFiles( const filename : string );
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 5. Mai 2017
    Hallo a.def

    das hilft eventuell.

    MD5 und SHA1 Hash Algorithmen sind absichtlich so konstruiert, dass du nicht von Anfang an das ganze Argument (= alle Filedaten) benötigst.
    D.h. du kannst das File nach und nach lesen und jederzeit mit Update den Hash Wert der bereits gelesenen Filedaten berechnen. Du hast also nach jedem Schritt zwei Argumente um fortzufahren mit deiner Berechnung, den...
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 5. Mai 2017
    Ich meinte damit nur: Du solltest beim Programmieren immer auch an den Speicher denken... wenn du das ganze File reinlädst, dann könnte das viel Speicher kosten.
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 5. Mai 2017
    Ich sorge mich aber schon ein wenig. Ich würde mal Pause machen, raus gehen, die 60€ für den Notar abarbeiten :roteyes: und dann wieder ran an den Code :-D.

    Stell dir vor, dein File ist grösser als der zur Verfügung stehende Arbeitsspeicher. Dann muss dein OS Daten auf HD auslagern um von der HD lesen zu können :evil:.

    Mach's mit "Einen Teil des Files lesen" - "Hash weiter rechnen" - "Den...
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 5. Mai 2017
    Hallo a.def,

    ich habe dir hier noch rasch die ähnliche Funktion für SHA1 geschrieben:

    procedure AddSHA1HashBytes( var lHasher: THashSHA1; const AStream: TStream; von, bis : int64 );
    const
    BufferSize = 64*1024;
    var
    lStreamBytes: TBytes;
    Lies, SollLesen : int64;
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 5. Mai 2017
    Und was hat DEC mit MD5 zu tun?
    Das liegt nicht an Delphi - du vergleichst hier zwei Hash Funktionen miteinander.


    Ich habe dir anhand eines Beispiels zeigen wollen, wie du bei der Berechnung des MD5 Hashs einer beliebig grossen Datei immer nur einen Teil und nie das ganze File laden musst.

    Wenn du lieber SHA1 verwendest, dann verwendest du lieber SHA1 - dein Entscheid... sei mit...
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 5. Mai 2017
    Wenn du den Hash selbst ermitteln musst, dann empfehle ich dir dies Stück für Stück zu tun.

    Ich hatte mal Code gepostet, welcher gleich alles las. Das ist natürlich für extrem grosse Files dumm.


    Wenn du über das ganze File hashen willst, dann nimm doch eine vorgefertigte Methode, zum Beispiel

    var b : TByte;
    rbs : rawbytestring;
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 5. Mai 2017
    Genau der gleiche Grund, du verlangst u.U. viel Speicher.
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 5. Mai 2017
    In deinem Codebeispiel oben liest du nur 32 Bytes:

    aFileStream.Read(s, Length(s));


    in deinem Beispiel unten das ganze File

    aByteStream.LoadFromFile(ParamStr(0));
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 4. Mai 2017
    Hast natürlich voll Recht Fritz - ein Hash welcher einer Bytefolge Bytes zuordnet muss auch bei Bytes bleiben. :thumb:

    Zu deinem Code: Beim Lesen des letzten File Teils, solltest du den Hash nur über die effektiv gelesenen Bytes updaten.

    Nebenbei: Wie jemand hier bereits erwähnt hat: GetHashBytesFromFile( filename ) ist in System.Hash bereits definiert.
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 3. Mai 2017
    Also Zacherl hat voll Recht.

    Wenn du die Abfrage nicht verschleierst, dann ist man durch, wenn man wie hier die Bedingung "stimmt der Hashwert noch" einfach aushebelt.

    Als kleine Knobelei könntest du ja deine Abfrage etwas verstecken und Zacherl dann mal deine exe übergeben ;-).

    ... und die fünf Minuten stoppen.
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 3. Mai 2017
    Hallo a.def

    schau dir nach deinen nächsten Ferien dann nochmal an, wie du den Hash Wert ins File schreibst. Es ist echt keine Zauberei.

    Wenn du den Hash Wert ans Ende des Files schreiben willst, dann ist es natürlich einfacher.

    So geht's :

    Hash Wert ans Ende des Files schreiben:
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 3. Mai 2017
    Aber sowas von bekannt. Wenn du md5c.exe startest (aus meinem Beispiel), dann siehst du ja, dass es klappt.

    Ich weiss, ich hätte dir zwei Teile anbieten sollten; einen Teil
    - "Codiere Hash in die exe" und einen zweiten Teil
    - "Prüfe den Hash in der exe".
    Didaktisch wäre das so korrekt, aber es wäre weniger Magie :glaskugel: dabei.


    Wir schreiben ja den Hash Wert aus ¦FILE EXE TEIL...
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 3. Mai 2017
    Und noch etwas:

    Mir fällt gerade auf, dass du nun nicht mehr MD5 sondern SHA2 verwendest.

    SHA2 Hashs sind länger als MD5. Du musst dies bei deiner Wahl von "a" berücksichtigen.


    Im "Fall MD5" wird

    a : RawByteString = 'In EXE nach diesem Text suchen..';
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 3. Mai 2017
    Du schreibst

    beim ersten Mal
    iPosRawByte - 1

    und beim zweiten Mal
    aByteStream.Size - (iPosRawByte + Length(a))

    Bytes in deinen aByteStream2. Insgesamt also
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 3. Mai 2017
    Hallo a.def

    1.
    wenn du das Programm startest, sind natürlich die Hash Werte voneinander verschieden, denn es wird ja

    "In EXE nach diesem Text suchen.." als Hash Wert interpretiert und verglichen mit dem Hash Wert von ¦FILE EXE TEIL 1¦FILE EXE TEIL 2¦.

    Wenn du aber die vom Programm erzeugte md5c.exe startest, dann steht anstelle von "In EXE nach diesem Text suchen.." nun der Hash Wert...
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 3. Mai 2017
    Hallo a.def

    ich hatte dir via PN geantwortet.

    Öffne ein neues Projekt, setze einen Button aufs Form und kopiere den Text unten rein.

    Starte das Programm und klick auf den Button.

    Deine exe sieht momentan so aus:
    ¦FILE EXE TEIL 1¦In EXE nach diesem Text suchen..¦FILE EXE TEIL 2¦
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 2. Mai 2017
    Dann hast du sicher riesige Downloadzahlen und deine User sehen nie "..diese Datei wird selten...".."...könnte schaden...trotzdem?"


    Zur Zertifikatsfrage:
    Du musst den Code selbstverständlich nicht preisgeben. Du signierst deine exe-Files auf deiner Kiste.

    Die Preise für Zertifikate sind ziemlich verschieden. Ich habe meines von einem Reseller von comodo. Das Zertifikat selbst wird in...
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 2. Mai 2017
    Hallo a.def

    nur kurz: Am Ende des Files fällt dein md5Hash auf wie ein bunter Hund.

    In einem weiteren Schritt wirst du nun den Hash Code direkt irgendwo in deine Programm Exe schreiben ;-).

    Eine Frage nebenbei: Wie vertreibst du deine Freeware? Wenn via Download von einer Webseite, dann musst du diese doch sicher irgendwann auch digital signieren - oder hast du derart hohe...
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 2. Mai 2017
    Wenn du deine Daten in einem Stream benötigst, dann lade doch dein File direkt dort rein.
    Sowohl TMemoryStream wie TFileStream kennen eine Methode LoadFromFile.
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 2. Mai 2017
    Beispiel: 1Bit Hash
    Wenn deine Wertemenge 2 Elemente enthält, dann werden alle Elemente deiner Definitionsmenge auf 0 oder 1 abgebildet. Du kannst also deine Definitionsmenge in "zwei Pakete" unterteilen. Wie du die Unterteilung (d.h. deine Hash Funktion) definierst ist abgängig davon, was deine Hash Funktion tun soll.

    Beispiel: Wenn h alle Zeichenketten mit dem Wort Delphi erkennen soll,...
  • Forum: Programmieren allgemein

    AW: DEC 5.2 String hashen?

     
      by Michael II, 2. Mai 2017
    Hallo a.def

    du schreibst



    Ich kann nicht abschätzen, was du einerseits mit "sicher" und andererseits mit "zurück gerechnet" meinst.

    Nur soviel:
    MD5 erzeugt zu einer beliebigen Zeichenkette einen 128 Bit Wert.


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=Michael+II&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=192579
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:57 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