AGB  ·  Datenschutz  ·  Impressum  







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

SHA512...

Ein Thema von Z4ppy · begonnen am 11. Apr 2010 · letzter Beitrag vom 11. Apr 2010
Antwort Antwort
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#1

SHA512...

  Alt 11. Apr 2010, 10:13
Bei einem aktuellen Projekt benötige ich SHA512. Ich verwende nun diese Komponente, habe mir aber für meine Zwecke eine kleine Unit zusammengeschrieben, die nur das enthält, was ich auch wirklich benötige.

Nun zu dem Problem:

Folgender Code stammt im Prinzip aus der FileHash Demo, ich habe ihn nur gekürzt...

Delphi-Quellcode:
function SHA512(s:string):string;
var DCP_sha512: TDCP_sha512;
    HashDigest: array of byte;
    i,read:integer;
    buffer: array[0..16383] of byte;
    strmInput: TFileStream;
begin
  DCP_sha512:=TDCP_sha512.Create(Form1);
  DCP_sha512.Init;
  strmInput:=TFileStream.Create('C:\Users\User\Desktop\Neues Textdokument.txt',fmOpenRead);
  repeat
    read := strmInput.Read(buffer,Sizeof(buffer));
    DCP_sha512.Update(buffer,read);
  until read <> Sizeof(buffer);
  strmInput.Free;
  SetLength(HashDigest,DCP_sha512.HashSize div 8);
  DCP_sha512.Final(HashDigest[0]);
  Result:='';
  for i:=0 to Length(HashDigest)-1 do
    Result:=Result+IntToHex(HashDigest[i],2);
end;
Funktioniert soweit auch ganz gut, lädt halt den Inhalt der angegebenen TXT-Datei und hasht diesen und gibt am Ende den Hash HEX-codiert zurück.
Wie man allerdings erkennen kann, ist mein Ziel eigentlich, einen string zu hashen. Und da kommen die Probleme ^^

1. DCP_sha512.Update(s,Length(s)) funktioniert nur bei leerem String, ansonsten ergibt das bei jedem Ausführen wieder etwas anderes
2. Den string mit den hier beschriebenen Methoden in einen Stream zu schreiben und so zu übergeben - was zwar eine sehr hässliche Lösung wäre - funktioniert ebenfalls nicht richtig und führt zum selben Ergebnis wie 1.

Hierzu sei noch gesagt: Der Fehler muss in diesem Code stecken, ich habe zum Test nochmals die Original Units geholt und damit getestet - es passierte das gleiche...

MfG Z4ppy
  Mit Zitat antworten Zitat
Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#2

Re: SHA512...

  Alt 11. Apr 2010, 11:19
versuchs mal mit DCP_sha512.Update(s[1],Length(s)) - diese Methode verwendet einen untypisierten Parameter, und ohne "Dereferenzierung" übergibst du bloss die eingentliche Adresse des Strings, plus was halt per Zufall noch dahinter im Speicher liegt... zusätzlich müsstest du dann auch noch prüfen, ob der String nicht allenfalls leer ist - sonst wird dir vermutlich eine Access-Violation-Exception um die Ohren fliegen...
  Mit Zitat antworten Zitat
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: SHA512...

  Alt 11. Apr 2010, 12:08

Ich merk den fehlenden Schlaf, glaub ich... In den letzten Nächten zusammengezählt nur 5 Stunden schlafen können
Danke dir

Das mit der AV is klar, jo, wird aber eh schon vorher überprüft

MfG Z4ppy
  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 18:49 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