Hi,
ich möchte eine Public-Key-Infrastruktur einrichten. Dabei soll ein PHP-Script, welches Zugriff auf den privaten Schlüssel hat, Daten mit diesem verschlüsseln. Der Public Key sollte zum Entschlüsseln dienen. Das Ganze ist also eine Signatur.
Das Problem dabei ist allerdings, dass ich es nicht schaffe, einen mit PHP verschlüsselten String in C# mit dem Public Key zu entschlüsseln. Ich steige nicht ganz durch die Binärdatenverarbeitung in PHP durch, irgendwie klappt das nicht. Was das Ganze noch erschwert ist, dass PHP nicht die beste Programmiersprache im Umgang mit Character Encodings ist.
Wenn ich auf beiden Seiten (Ver-/Entschlüsseln) die gleiche Programmiersprache verwende, funktioniert es jeweils. Das ist aber leider nicht der Zweck.
Von daher frage ich mich:
Wie erzeuge ich ein Schlüsselpaar, das in PHP und .NET/C# verwendbar ist, und wie stelle ich es PHP bereit und verwende es korrekt? Als Verfahren habe ich den DSA gewählt, falls Ihr da aber bessere/aktuellere Verfahren kennt, lasst es mich bitte wissen.
Auf der PHP-Seite verwende ich openssl, in .NET/C# den System.Security.Cryptography-Namespace. Eigentlich ist DSA ja standardisiert und müsste sprachübergreifend problemlos funktionieren.
Was am Ende dabei rauskommen soll, ist, dass ein Client eine Anfrage mit einem String sendet. Dieser String soll vom PHP-Skript signiert und zurückgegeben werden. Der Client kann die Signatur dann mit Hilfe des Public Keys validieren. Vielleicht fällt Euch dazu ja was angenehmeres ein.
nikeee
ich möchte eine Public-Key-Infrastruktur einrichten. Dabei soll ein PHP-Script, welches Zugriff auf den privaten Schlüssel hat, Daten mit diesem verschlüsseln. Der Public Key sollte zum Entschlüsseln dienen. Das Ganze ist also eine Signatur.
Das Problem dabei ist allerdings, dass ich es nicht schaffe, einen mit PHP verschlüsselten String in C# mit dem Public Key zu entschlüsseln. Ich steige nicht ganz durch die Binärdatenverarbeitung in PHP durch, irgendwie klappt das nicht. Was das Ganze noch erschwert ist, dass PHP nicht die beste Programmiersprache im Umgang mit Character Encodings ist.
Wenn ich auf beiden Seiten (Ver-/Entschlüsseln) die gleiche Programmiersprache verwende, funktioniert es jeweils. Das ist aber leider nicht der Zweck.
Von daher frage ich mich:
Wie erzeuge ich ein Schlüsselpaar, das in PHP und .NET/C# verwendbar ist, und wie stelle ich es PHP bereit und verwende es korrekt? Als Verfahren habe ich den DSA gewählt, falls Ihr da aber bessere/aktuellere Verfahren kennt, lasst es mich bitte wissen.
Auf der PHP-Seite verwende ich openssl, in .NET/C# den System.Security.Cryptography-Namespace. Eigentlich ist DSA ja standardisiert und müsste sprachübergreifend problemlos funktionieren.
Was am Ende dabei rauskommen soll, ist, dass ein Client eine Anfrage mit einem String sendet. Dieser String soll vom PHP-Skript signiert und zurückgegeben werden. Der Client kann die Signatur dann mit Hilfe des Public Keys validieren. Vielleicht fällt Euch dazu ja was angenehmeres ein.
nikeee
Von meinem iPhone gesendet