Die Frage ist nicht, wie verschlüsselt wird, sondern wie etwas in Delphi verschlüsselt wird, damit es mit PHP wieder entschlüsselt werden kann.
Dabei spielt das Verfahren selber keine Rolle.
Problematisch ist einfach nur die Kodierung des Strings.
Bei den üblichen Cryptern werden keine Strings verschlüsselt, sondern Bytefolgen
String -> Bytefolge -> Crypten -|-> Decrypten -> Bytefolge -> String
Fehler passieren hier zu 99% bei der Umwandlung vom String zur Bytefolge und umgekehrt und sehr selten beim Crypten/Decrypten
Das ist die Stelle, wo Base64 dann doch wieder nützlich sein kann