Fingerprint() Funktion mit Rückgabe eines Speicherzeigers ?
Verfasst: 01.07.2016 21:47
Hallo,
die Funktion Fingerprint() gibt einen String zurück. Diesen wandele ich dann in ein Bytearray um. Beispiel:
Da die Funktion intern mit einem Speicherbuffer rechnet und das Ergebnis dann in einen String wandelt, frage ich mich ob man auch direkt an den Speicher heran kommt bevor der String erstellt wird?
Oder besser wie geht das Effizenter?
Gruß
die Funktion Fingerprint() gibt einen String zurück. Diesen wandele ich dann in ein Bytearray um. Beispiel:
Code: Alles auswählen
EnableExplicit
UseSHA3Fingerprint()
Procedure.i HexStr2Bin(daten.s)
Protected anzahl.i = Len(daten)
Protected *mem = AllocateMemory(anzahl / 2)
If *mem And anzahl
Protected *zmem = *mem
Protected zdaten.i = 1
While anzahl
PokeA(*zmem, Val("$" + Mid(daten, zdaten, 2)))
*zmem + 1
zdaten + 2
anzahl - 2
Wend
EndIf
ProcedureReturn *mem
EndProcedure
Define *mem = HexStr2Bin(Fingerprint(?daten, 8, #PB_Cipher_SHA3, 512))
ShowMemoryViewer(*mem, MemorySize(*mem))
If *mem : FreeMemory(*mem) : EndIf
End
DataSection
daten:
Data.a $47, $11, $08, $15, $62, $87, $00, $FF
EndDataSectionOder besser wie geht das Effizenter?
Gruß