Ich habe seltsame Probleme mit der Krypto-Bibliothek von Node. Ich habe dieses einfache AES-Testskript geschrieben:
%Vor%Wenn ich console.log (dec) mache, ist es null. Aus irgendeinem Grund, wenn ich den Test auf "123 | 123123" setze, funktioniert es. Warum funktioniert "123 | 123123", aber "123 | 123123123123123" nicht?
Sie müssen die Rückgabe von cipher.update sowie von cipher.final speichern, um sicherzustellen, dass Sie alles haben.
cipher.update "gibt den verschlüsselten Inhalt zurück und kann beim Streamen mehrfach mit neuen Daten aufgerufen werden":
cipher.final "gibt alle verbleibenden verschlüsselten Inhalte zurück".
Ich denke, Sie fügen die Ergebnisse bei jedem Aufruf einfach so an:
%Vor%Ich bekomme '12443a347e8e5b46caba9f7afc93d71287fbf11169e8556c6bb9c51760d5c585' für verschlüsselte und '123 | 123123123123123' für dec im obigen mit Knoten v0.2.5
RandomEtc ist korrekt, aber falls jemand bei dieser Frage stolpert, benutzt er 'base64'
als Kodierung: Nicht. Bleib bei 'hex'
. Zumindest ab 0.4.2 gibt es einen Fehler, der zu beschädigten Daten führen kann, wenn 'base64'
verwendet wird. Siehe: Ссылка
Beachten Sie, dass der Operator +=
in späteren Versionen von node.js nicht funktioniert. Befolgen Sie die Anweisungen in der Node.js Crypto-Klasse, die unterschiedliche Ergebnisse mit der aktualisierten Version zurückgibt und verwenden Sie Buffer.concat()
Tags und Links node.js encryption aes node-crypto