Seite 1 von 1

Base64Encoder - Base64Decoder

Verfasst: 27.04.2011 09:06
von Tsuki-Namida
Hallo,
Ich möchteeinen text Verschlüsseln und auch entschlüsseln.... für meine zwecke reicht der Base64 aber ich bekomme beim Verschlüsseln die meldung das die länge 33% größer sein muss (Steht ja auch inder hilfe) deshalb habe ich dasso geregelt:

Code: Alles auswählen

Base64Encoder(@String, StringByteLength(String), @enc, Len(String)/100*135)
wenn ich dann den code weiterlaufen lasse nach der meldung bekomme ich zwar die verschlüsselte wariante aber wenn ich dann entschlüssel bekomme ich nur einen bruchteil zurück..... hier ist die zeile zum entschlüsseln:

Code: Alles auswählen

Base64Decoder(@String, StringByteLength(String), @dec, Len(String))
ich hoffe das mir jemand helfen kann..... Danke

Re: Base64Encoder - Base64Decoder

Verfasst: 27.04.2011 09:20
von STARGÅTE
Und wieder einer der in einen String-Pointer schreibt :freak:

Fragen an dich:
Wieso benutzt du einmal richtigerweise StringByteLength und beim anderen mal nur Len() ?
- Bitte beide male StringByteLength nutzen!
Hast du vorher sichergestellt das @enc auch ein gültiger String-Pointer ist ?
- Hast du ihn also vorher schon mit zB Space(Len(String)*1.35) initiallisiert ?
Hast du vorher sichergestellt das @dec auch ein gültiger String-Pointer ist ?
- -"-

In Zukunft:
Bitte Immer echte Pointer nutzen, statt String-Pointer, sofern in der Hilfe auch Pointer als Parameter erwartet werden!

Re: Base64Encoder - Base64Decoder

Verfasst: 27.04.2011 09:27
von Tsuki-Namida
Ja als Pointer habeichesfestgelegt ;)

Code: Alles auswählen

  dec.s = Space(StringByteLength(String)) 
  enc.s = Space(StringByteLength(String)/100*135) 
und ich habe Len() mit StringByteLength() ausgetauscht...

Code: Alles auswählen

Base64Encoder(@String, StringByteLength(String), @enc, StringByteLength(String)/100*135)

Habe aber dennoch das selbe Problem......

Re: Base64Encoder - Base64Decoder

Verfasst: 27.04.2011 09:33
von STARGÅTE
Kann dein Problem nicht nachvollziehen.

hast du auch die Mindestgröße von 64 Bytes beachtet?

Code: Alles auswählen

Define.s String = "Hallo Welt! Hallo Welt! Hallo Welt! Hallo Welt! Hallo Welt!"
Define.s enc = Space(Len(String)*1.35+64)
Define.s dec = Space(Len(String))
Base64Encoder(@String, StringByteLength(String), @enc, StringByteLength(enc))
Debug enc
Base64Decoder(@enc, StringByteLength(enc), @dec, StringByteLength(dec))
Debug dec
Noch ein Hinweis:
A/100*135 ist immer 0 wenn A < 100 ist und Integers erwartet werden!
Daher lieber *1.35

Re: Base64Encoder - Base64Decoder

Verfasst: 27.04.2011 09:42
von Tsuki-Namida
Supi Danke so funktioniert es jetzt ^^ also mit *1.35+64

aber beim Decoder bekomme ich dennoch nur ein bruchteil raus nicht alles....

Re: Base64Encoder - Base64Decoder

Verfasst: 27.04.2011 09:47
von STARGÅTE
Es wäre vielleicht angebracht, wenn du mal einen kompletten Code posten würdest, wo man dieses Problem sehen kann!

Re: Base64Encoder - Base64Decoder

Verfasst: 27.04.2011 10:10
von Tsuki-Namida
okay Danke aberes hat sich erledigt ^^
es lag an einem Tip fehler -.- es funktioniert alles supi :)

Re: Base64Encoder - Base64Decoder

Verfasst: 27.04.2011 10:17
von Danilo
STARGÅTE hat geschrieben:Es wäre vielleicht angebracht, wenn du mal einen kompletten Code posten würdest, wo man dieses Problem sehen kann!
Hat er schon gepostet:

Code: Alles auswählen

Base64Decoder(@String, StringByteLength(String), @dec, Len(String))
Hier verwendete er bei den ersten beiden Argumenten
wieder den originalen String, nicht den verschlüsselten (enc). :)

Re: Base64Encoder - Base64Decoder

Verfasst: 27.04.2011 10:26
von STARGÅTE
:lol: Konnte ja nicht ahnen, das er diese Beispiel-Schnipsel wirklich benutzt hat ^^

Re: Base64Encoder - Base64Decoder

Verfasst: 27.04.2011 21:20
von NicTheQuick
Danilo? :o :mrgreen: