![]() |
SHA512...
Bei einem aktuellen Projekt benötige ich SHA512. Ich verwende nun
![]() Nun zu dem Problem: Folgender Code stammt im Prinzip aus der FileHash Demo, ich habe ihn nur gekürzt...
Delphi-Quellcode:
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.
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; 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 :wall: 2. Den string mit den ![]() 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 |
Re: SHA512...
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...
|
Re: SHA512...
:wall:
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz