Was ist der beste Weg, um eine JSON-Zeichenfolge zu verschlüsseln / entschlüsseln

8

Ich habe einen Webserver, auf dem mysql und php laufen, der Daten an eine json-Zeichenkette sendet.

Ich habe einen zweiten Webserver, der die Daten liest und dann anzeigt.

Im Moment läuft alles gut.

Ich muss einige sensible Daten in die Zeichenfolge einfügen, also habe ich mich gefragt, was der beste Weg ist, den JSON mit PHP zu verschlüsseln / entschlüsseln?

Kann jemand helfen?

    
Steve 20.02.2012, 17:26
quelle

6 Antworten

9

Ich wette, der beste Weg ist die Verwendung von SSL (HTTPS) und ich empfehle Ihnen, den OWASP Guide zu lesen besonders die Anleitung .

    
alexsuslin 20.02.2012, 17:30
quelle
13

Ich mochte immer MCRYPT

%Vor%

Wenn Sie etwas suchen. Es behandelt den JSON als String und nach der Entschlüsselung müssen Sie Ihre json_decode() oder was auch immer Sie gerade tun.

    
romo 20.02.2012 17:34
quelle
5

Es hängt wirklich davon ab, wie sensibel die Daten sind. Aus meiner Erfahrung ist jedoch eine einfache PHP-Verschlüsselung in der Regel sinnvoll. Normalerweise würde ich die sensiblen Felder in den JSON-Datenfeldern verschlüsseln, bevor ich sie in eine JSON-Zeichenfolge umwandele.

Hier ist der Code für den Verschlüsselungsteil.

$ key = 'Passwort zu (en / de) crypt'; $ string = 'Zu verschlüsselnde Zeichenfolge'; // notiere die Leerzeichen

Zu verschlüsseln:

%Vor%

Entschlüsseln:

%Vor%

Sie sollten jedoch immer Hash-Passwörter (MD5, SHA1) verwenden, vorzugsweise mit etwas Salz.

    
iewnait 20.02.2012 17:35
quelle
1

Speichern Sie einen privaten Schlüssel auf dem Server und verwenden Sie die DES-Verschlüsselung. Es ist ein 2-Wege-Algorithmus.

BEARBEITEN:

Pro Kommentar scheint es, dass ich die Frage falsch interpretiert habe. Meine Vermutung war, OP würde gerne verschlüsselte Daten im Internet wie in einer E-Mail versenden oder etwas später die Daten dann wieder abrufen und entschlüsseln können. Ich werde sicher sein, durch Kommentare in der Zukunft zu klären, bevor ich eine Antwort einreiche.

    
quickshiftin 20.02.2012 17:28
quelle
0

Verwenden Sie SSL öffnen:

Ссылка

Sie können ein öffentliches / privates Schlüsselpaar ohne HTTPS generieren, wenn es nicht verfügbar ist.

    
MarkR 20.02.2012 17:35
quelle
-1

Natürlich wird SSL (HTTPS) benötigt, um Daten sicher über das Internet zu übertragen.

Aber das sagte, es gibt immer noch Gründe, um JSON-Daten zu verschlüsseln, bevor Sie sie gesendet haben.

Ich hatte ein Problem mit der Verschlüsselung von JSON-Daten. Es wurde von "\ t" in JSON-Daten verursacht. Sie müssen sie vor der Verschlüsselung entfernen. Andernfalls wird es ein Problem geben, wenn Sie es zurück zu einem passenden json Format entschlüsseln möchten.

$ plain_txt = str_replace ("\ r", "", $ plain_txt);

$ plain_txt = str_replace ("\ n", "", $ plain_txt);

$ plain_txt = str_replace ("\ t", "", $ plain_txt);

Siehe ein Arbeitsbeispiel: Ссылка

    
Peter Muller 24.11.2017 23:34
quelle

Tags und Links