Seite 4 von 4

Re: XOR und Strings

Verfasst: 12.11.2015 23:04
von TroaX

Re: XOR und Strings

Verfasst: 13.11.2015 19:38
von Sicro
NicTheQuick hat geschrieben:So geht's richtig:

Code: Alles auswählen

UseSHA3Fingerprint()

Define input.s = "Hello Cipher"

Debug "StringFingerprint: " + StringFingerprint(input, #PB_Cipher_SHA3)

*buffer = AllocateMemory(Len(input) * 4)
bytes = PokeS(*buffer, input, -1, #PB_UTF8)

Debug "FingerPrint: " + Fingerprint(*buffer, bytes, #PB_Cipher_SHA3)

FreeMemory(*buffer)
Eher so ist es richtig:

Code: Alles auswählen

UseSHA3Fingerprint()

Define input.s = "Hello Cipher"

Debug "StringFingerprint: " + StringFingerprint(input, #PB_Cipher_SHA3)

*buffer = AllocateMemory(StringByteLength(input, #PB_UTF8) + SizeOf(Character))
bytes = PokeS(*buffer, input, -1, #PB_UTF8)

Debug "FingerPrint: " + Fingerprint(*buffer, bytes, #PB_Cipher_SHA3)

FreeMemory(*buffer)
Oder hast du Len() anstatt StringByteLength() aus Geschwindigkeitsgründen vorgezogen?
Wenn dem so ist, hast du dennoch das abschließende Null-Zeichen vergessen.

Re: XOR und Strings

Verfasst: 13.11.2015 23:57
von NicTheQuick
Stimmt, das +1 hat gefehlt, aber das *4 war ja auch schon übertrieben. :mrgreen:
Ich wollte mir tatsächlich das StringByteLength sparen.

Re: XOR und Strings

Verfasst: 14.11.2015 10:33
von TroaX
NicTheQuick hat geschrieben:Stimmt, das +1 hat gefehlt, aber das *4 war ja auch schon übertrieben. :mrgreen:
Ich wollte mir tatsächlich das StringByteLength sparen.
Wieso übertrieben. Bei mir was es sogar zu wenig. Mit dem 4-fachen hatte ich einen Speicherzugriffsfehler :lol: