Auf der Suche nach einer Möglichkeit, Daten zwischen JavaScript und PHP mittels RSA (PublicKey und PrivateKey) zu verschlüsseln und entschlüsseln trifft man auf viele Libraries, Demos, Beispiele und GitHub Repos.
Egal welche ich getestet habe, es war keine zufrieden stellende Lösung dabei.
Entweder funktionieren diese schlichtweg nicht (mehr) oder es ist eine unidirektionale Lösung, jedoch keine bidirektionale.

Man muss auch bedenken, dass ein Private oder Public Key in unterschiedlichen Formaten vorliegen kann. Als base64 String, im PEM Format, als Hex String,…
Diverse Libraries benötigen die Keys ggfs. auch in anderen Formaten, was eine Vereinigung zweier Libraries zweier Sprachen nicht gerade einfacher macht.

Nach diversen Recherchen und etlichen Versuchen mit diversen Demos, scheinen sich für mich phpseclib und JSEncrypt herauskristallisiert zu haben.
Anbei mein funktionierendes Beispiel als Single-File (Quick and Dirty, jedoch zu Demozwecken ausreichen!). Es müssen lediglich noch die phpseclib sowie jsencrypt heruntergeladen werden.

Oder hier als komplettes, funktionierendes ZIP-Archiv inkl. aller Abhängigkeiten!

=> Download JsPhpRsa.zip Archiv

Categories: JavaScriptPHP