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

Zuletzt geändert von walbus am 07.02.2015 23:00, insgesamt 11-mal geändert.
Re: AES256 CBC Mode-beliebige String´s einfach speichern & l
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.
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
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.
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 du mit
Code: Alles auswählen
WriteData(0,@encrypted$,len_buffer)
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
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: AES256 CBC Mode-beliebige String´s einfach speichern & l

Zuletzt geändert von walbus am 07.02.2015 22:59, insgesamt 4-mal geändert.
Re: AES256 CBC Mode-beliebige String´s einfach speichern & l

Zuletzt geändert von walbus am 07.02.2015 23:01, insgesamt 5-mal geändert.
Re: AES256 CBC Mode-beliebige String´s einfach speichern & l
Aber warum willst du dann nicht sicher gehen und ein Memory mit der Länge erstellen und wieder Freigeben?walbus hat geschrieben:Der verschlüsselte String existiert nur sekundär, es wird nicht darauf zugegriffen.
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
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr