XOR und Strings

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
TroaX
Beiträge: 684
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Linux Mint | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Linux Mint
Wohnort: NRW
Kontaktdaten:

Re: XOR und Strings

Beitrag von TroaX »

PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Linux Mint
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: Fritz.Box 5690 Pro (Nur für Keepass-DB)
Coding: Purebasic, Spiderbasic, GDevelop, Javascript/Node
Benutzeravatar
Sicro
Beiträge: 964
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: XOR und Strings

Beitrag 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.
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: XOR und Strings

Beitrag von NicTheQuick »

Stimmt, das +1 hat gefehlt, aber das *4 war ja auch schon übertrieben. :mrgreen:
Ich wollte mir tatsächlich das StringByteLength sparen.
Benutzeravatar
TroaX
Beiträge: 684
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Linux Mint | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Linux Mint
Wohnort: NRW
Kontaktdaten:

Re: XOR und Strings

Beitrag 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:
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Linux Mint
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: Fritz.Box 5690 Pro (Nur für Keepass-DB)
Coding: Purebasic, Spiderbasic, GDevelop, Javascript/Node
Antworten