Dude
Hallo,
ich nutze base64_encode um einen String zu verschlüsseln. Das Problem ist, dass base64 eben auch "/" oder "+" oder "=" enthält. Das ist schlecht für die Weiterverarbeitung (und nein urlencode ist keine Lösung in meinem Fall). Zum Beispiel encode ich einen Dateinamen beim Dateiupload und dieser könnte dann ja auch "/" enthalten. Das würde den File-Upload fehlschlagen lassen. Also habe ich mich informiert über eine bessere Methode bas64_encode zu verwenden. Diese Funktionen sind das Ergebnis.
Die Funktion ersetzt also die Zeichen die ich nicht haben möchte, durch andere.
Dazu habe ich aber noch Bedenken:
Julian
ich nutze base64_encode um einen String zu verschlüsseln. Das Problem ist, dass base64 eben auch "/" oder "+" oder "=" enthält. Das ist schlecht für die Weiterverarbeitung (und nein urlencode ist keine Lösung in meinem Fall). Zum Beispiel encode ich einen Dateinamen beim Dateiupload und dieser könnte dann ja auch "/" enthalten. Das würde den File-Upload fehlschlagen lassen. Also habe ich mich informiert über eine bessere Methode bas64_encode zu verwenden. Diese Funktionen sind das Ergebnis.
Code:
function base64_url_encode($input){return strtr(base64_encode($input),'+/=','-_,');}
function base64_url_decode($input){return base64_decode(strtr($input,'-_,','+/='));}
Dazu habe ich aber noch Bedenken:
- Die Funktion kodiert ja z.B. "/" zu "_". Die Decode-Funktion macht das dann umgekehrt also wandelt "_" zu "/" um. Ich sehe das Problem dann darin, dass wenn wirklich einmal "_" in einem String enthalten ist, dann wird es ja auch zu "/" umgewandelt. Sind die Funktionen also überhaupt valide?
- Ist die Implementierung dieser beiden Funktionen statt den nativen Funktionen überhaupt sinnvoll? Ich nutze base64_encode in einer encrypt-Funktion. Wenn jetzt ein Nutzer ein verschlüsseltes Passwort hat das eines der besagten Zeichen bereits beinhaltet, wird das zu Fehlern führen wenn ich auf die Funktionen umstelle?
- Falls das Mist ist, was ist die Alternative um "/" in einem base64_encode-String zu vermeiden?
Julian