Verschlüsseln von Strings in PHP und entschlüsseln in Node.js

Ich bin das senden von Daten über unsichere Verbindung zwischen Apache und Node.js Server. Ich brauche, um Daten zu verschlüsseln in PHP und entschlüsseln in Node.js. Ich habe 2 Tage versucht es zum laufen zu bringen, aber es gelang mir nur um die Nachrichtensignatur zu arbeiten, keine Verschlüsselung. Ich habe versucht, die übergabe AES128-CBC, AES256-CBC, DES, AES128, AES256, wie algorithmen, aber nichts funktionierte gut..

Habe ich versucht, dieses in PHP:

$data = json_encode(Array('mk' => $_SESSION['key'], 'algorithm' => 'SHA1', 'username' => $_SESSION['userid'], 'expires' => $expires));
$payload = openssl_encrypt($data, 'des', '716c26ef');
return base64_encode($payload);

Und in Node.js:

var enc_json = new Buffer(response[1], 'base64');
var decipher = crypto.createDecipher('des', '716c26ef');
var json = decipher.update(enc_json).toString('ascii');
json += decipher.final('ascii');

Und außerdem falsch entschlüsselten Daten bekomme ich Fehlermeldung wie diese:

TypeError: error:0606508A:digital envelope routines:EVP_DecryptFinal_ex:data not multiple of block length

TypeError: error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length

Brauche ich eine einfache Verschlüsselung, da die Daten nicht zu empfindlich (kein Passwort oder user-Daten), jedoch sollten die Daten nur vom Empfänger gelesen werden. Die Schlüssellänge kann alles sein, aber-Verfahren zum verschlüsseln/entschlüsseln muss so einfach wie möglich, bitte keine IVs.

  • Warum können Sie nicht verwenden, HTTPS?
  • Sollten Sie nicht zurückkehren base64_encode($payload);?
  • Ich bin.. ich war die Bearbeitung Variablennamen für die Frage.
  • es ist Dritte diese: Daten geht an den client, wo es für die zukünftige Verwendung gespeichert oder gesendet werden Node.js server sofort.
InformationsquelleAutor Xeos | 2013-11-12
Schreibe einen Kommentar