Quote Originally Posted by douwe_yntema View Post
Als ik de input 2x decodebase64 doe, crasht het programma. Doe ik het 1 keer, dan werkt het juist goed. Input is hard ingegeven zoals in jou voorbeeld. De parameter waar jij op doeld bij PHP doet staat en stond op raw data.
Jij gaf aan dat dit de PHP code was:
PHP Code:
  1. $encrypted = openssl_encrypt($data, 'AES-256-CBC', $encryption_key, 0, $iv);
Waar zie jij dan de RAW parameter staan? Als je optie 0 meegeeft dan geef je dus geen RAW optie en zal openssl_encrypt het resultaat encode. Jij pakt dat resultaat, plakt er :: + IV achter en doet nogmaals een base64 encoding.

Quote Originally Posted by douwe_yntema View Post
Als ik de input 2x decodebase64 doe, crasht het programma.
Wat bedoel je hier nu mee? Je moet de input niet 2x decoden. Dat heb ik nooit gezegd.
De DataString (alleen die) is dubbel encoded. Eenmaal samen met de IV. En daarna nog eenmaal enkel alleen. Dus in mijn laatste code heb ik die DecodeStringBase64 om de datarr[0] heen gezet. DAT bedoelde ik met dat de DataString dubbel encoded was.

Maar goed... het werkt nu dus.

Het zou overigens nog kunnen zijn dat de database string spaties bevat (aan de achterkant). Dat hangt een beetje af van welke database, componenten en instellingen je gebruikt.
Dus daar zou je eens naar kunnen kijken. (of '.' + TField.asString + '.' is zoals je verwacht) In ieder geval verwacht ik dus met een base64 encoded string geen urf-8 problemen.
(altijd weer leuk om iets te puzzelen te hebben )