Hallo!
Ich habe mir ein Porgramm geschrieben welches mit einer PHP Datei kommuniziert.
Jedoch möchte ich den POST Befehl der von dem C# Programm ausgeht verschlüsseln und später in PHP entschlüsseln und umgekehrt.
Bin jetzt seit gut einem Tag auf der Suche nach einer Verschlüsselung die funktioniert... Sowohl in PHP als auch in C#.
Habe schon viele Beispiele gefunden gehabt aber leider kann ich in PHP nicht auf diese MCRYPT Libraray zugreifen/sie installieren.
Hat jemand von euch einen Verschlüsselungsalgorithmus der einfach nur einen String verschlüsselt (mit Passwort) und wieder entschlüsselt (PHP/C#)?
Das wär echt super 😃
Danke schonmal im Vorraus!
Hast du ein Beispiel dafür?
Finde leider nichts anständiges bei der Suche nach "C# PHP POST request mit SSL".
C# PHP POST request mit SSL
Nein, damit ist gemeint, dass der Webserver auf dem PHP läuft die Website per HTTPS anbietet.
Ich glaube, dann ist sogar kein zusätzlicher Mehraufwand mehr nötig, jedenfalls bei der C#-Anwendung. Das kann das Framework fast gänzlich alleine.
Wenn du selbst verschlüsseln willst wird es etwas haariger da ein halbwegs sicherer Algorithmus das Jounglieren mit sehr großen Zahlen bedeutet. Wenn es in deiner Hand liegt, ist die HTTPS-Lösung besser.
Falls du dieses MCRYPT verwenden willst und es noch nicht da ist, wäre Installieren eine Idee 😉.
Wenn du einen gratis Server verwendest und überhaupt keine Möglichkeit hast die Serverkonfiguration zu ändern, wäre es interessant wie sicher die Verschlüsselung sein soll.
As a man thinketh in his heart, so he is.
Ich hab leider nur shared Webspace.
Hab da leider keinen Zugriff auf den Webserver!
Wenn das Tool einen POST reuqest sendet und HTTPS auf der Webseite aktiv ist wird der POST Befehl und dessen Inhalt automatisch verschlüsselt gesendet?
Das wär echt stark. Ausser ich hab was falsch verstanden.
Die Verschlüsselung muss keines Falls stark sein.
Base64 kam mir auch schon in den Kopf. Leicht zu nutzen, klappt auf PHP und C# Seite ohne Probleme.
Nur das ist keine Verschlüsselung noch ist das Ding sicher 😄
Aber mir würde schon was so leichtes wie Base64 reichen wenn mans mit Passwort verschlüsseln könnte.
Vielleicht hat ja wer eine Idee.
Ich habe bei manchen Formularen zum Schutze der Manipulation einen Hash als versteckten Input-Wert. Der Hash ist aber nichts anderes als ein mit Hilfe von Rijndael verschlüsselter Pfad.
Die Basis hierfür ist zB Encrypt and Decrypt Strings
Das müsste mit PHP und C# klappen.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Dann kann man auch gleich die Daten mit Rijndael verschlüsseln wenn die nicht leserlich sein sollen. Ansonsten ist es eher eine Signatur aber genau so effektiv gegen Veränderung.
Xor hat ein großes Problem: Wenn man den Klartext kennt, kann man beliebige Stellen gezielt Manipulieren.
Was die Sicherheit im allgemeinen an geht: Bei synchroner Verschlüsselung wirst du immer den Schlüssel aus dem C# Programm ziehen können. Spätestens zur Laufzeit steht der im Speicher.
Ich habe mich daher mal für eine Asynchrone Verschlüsselung entschieden, da hilft es nicht den (Public) Key im Client nur zu kennen, man müsste ihn auch ändern um z.B. mit einem eigenen Proxy kommunizieren zu können. Dafür ist aber das Crpyto Modul notwendig. Wenn du das hast kann ich dir Quellcode dazu schicken.
Dann kann man auch gleich die Daten mit Rijndael verschlüsseln wenn die nicht leserlich sein sollen. Ansonsten ist es eher eine Signatur aber genau so effektiv gegen Veränderung.
Kommt immer auf die Situation an.
In meinem Fall serialisiert mein MVC Controller automatisch das Objekt, der Hash ist hier nur eine Überprüfung, ob sich gewisse Werte (ID....) auch nicht geändert haben, zB mit Hilfe von Firebug und Co.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Danke für die Antworten 😃
Wäre sehr cool wenn du mir den Code von die mal schicken könntest 😃
Das ist alles noch im Projekt verflochten und ist damit nicht direkt compilierbar. Der PHP Teil ist sehr klein und wurde bisher nur für tests benutzt.
Du musst dir natürlich selbst *.pem files generieren.
Ziel war es ein ganzes Lizenzsystem zu implementieren, wurde aber aus Zeitgründen noch nicht vollendet. Daher kann ich auch kaum Support zu dem Code anbieten, ich hoffe der hilft dennoch. Die ein oder andere Funktion könnte bestimmt hilfreich sein.
Gruß, Tarion