AES256 CBC Mode-beliebige String´s einfach speichern & laden

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
walbus
Beiträge: 137
Registriert: 03.03.2013 20:50

AES256 CBC Mode-beliebige String´s einfach speichern & laden

Beitrag von walbus »

:)
Zuletzt geändert von walbus am 07.02.2015 23:00, insgesamt 11-mal geändert.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: AES256 CBC Mode-beliebige String´s einfach speichern & l

Beitrag von STARGÅTE »

Sry das ich wieder mein Standardsatz hier ablassen muss aber:
Man kann das Resultat des AESEncoder nicht in einem Strings speichern!

Ein mit AES kodierter Speicher kann NUL-Zeichen enthalten, die einen String sofort abschneiden.

Code: Alles auswählen

AES256CBC_Encoder(@decrypted$,@encrypted$,len_buffer,*key,*iv) ; Encoding
Das geht nicht, sobald in encrypted$ ein NUL-Zeichen kommt, endet der String, egal was danach noch in den Speicher geschrieben wurde.

Das du mit

Code: Alles auswählen

WriteData(0,@encrypted$,len_buffer)
trotzdem den richtigen Speicher in die Datei schreibst ist nicht sichergestellt, denn der Bereich hinter dem NUL-zeichen könnte schon von anderen Operationen genutzt wurde, weil der Bereich für den String nicht dazugehört.

Bitte ändere den Code so ab, dass du an diesen Stellen Memory nutzt.

Nebenbei solltest du nicht das File mit Nummer 0 öffnen, denn falls der Nutzer das schon macht, gibts n Error, lieber #PB_Any nutzen.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
walbus
Beiträge: 137
Registriert: 03.03.2013 20:50

Re: AES256 CBC Mode-beliebige String´s einfach speichern & l

Beitrag von walbus »

:)
Zuletzt geändert von walbus am 07.02.2015 22:59, insgesamt 4-mal geändert.
walbus
Beiträge: 137
Registriert: 03.03.2013 20:50

Re: AES256 CBC Mode-beliebige String´s einfach speichern & l

Beitrag von walbus »

:)
Zuletzt geändert von walbus am 07.02.2015 23:01, insgesamt 5-mal geändert.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: AES256 CBC Mode-beliebige String´s einfach speichern & l

Beitrag von STARGÅTE »

walbus hat geschrieben:Der verschlüsselte String existiert nur sekundär, es wird nicht darauf zugegriffen.
Aber warum willst du dann nicht sicher gehen und ein Memory mit der Länge erstellen und wieder Freigeben?

Ich (und ich ich vermute mal du auch) habe keine Ahnung, wie genau das StringManagement in PB aufgebaut ist.
Der protected string "encrypted$=Space(len_buffer)" wird von dir als Memory space missbraucht. (mag ja noch "ok" sein)
Nun weiß ich allerdings nicht was am Ende beim verlassen der Procedure passiert.
encrypted$ muss ja wieder freigegeben werden.
Speichert PB zu jedem String die Länge selbst noch mal? dann würde es richtig freigegeben werden
oder wird der String bis zu NUL gelesen und freigegeben? dann würde es in deiner Version ein Memoryleck geben.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten