Verschlüsselungstechnologien werden üblicherweise in zwei Kategorien unterteilt: „symmetrisch“ und „asymmetrisch“.
Symmetrische Verschlüsselung:
Für die Verschlüsselung und Entschlüsselung wird derselbe Schlüssel verwendet, üblicherweise „Sitzungsschlüssel“ genannt. Diese Verschlüsselungstechnologie ist heute weit verbreitet, beispielsweise die von der US-Regierung verwendete DES Der Verschlüsselungsstandard ist eine typische „symmetrische“ Verschlüsselungsmethode und seine Sitzungsschlüssellänge beträgt 56 Bit.
Asymmetrische Verschlüsselung:
Das heißt, Verschlüsselung und Entschlüsselung verwenden normalerweise zwei Schlüssel, die als „öffentlicher Schlüssel“ und „privater Schlüssel“ bezeichnet werden Verschlüsselte Dateien können nicht geöffnet werden.
Verschlüsselung ist eine häufig verwendete Funktion im System. Node wird mit Crypto geliefert, einer leistungsstarken Verschlüsselungsfunktion.
1. Referenz zum Verschlüsselungsmodul:
var crypto=require('crypto'); var $=require('underscore');var DEFAULTS = { encoding: { input: 'utf8', output: 'hex' }, algorithms: ['bf', 'blowfish', 'aes-128-cbc'] };
Standardkonfigurationselement für den Verschlüsselungsalgorithmus:
Das Eingabedatenformat ist utf8, das Ausgabeformat ist hexadezimal, der
-Algorithmus verwendet drei Verschlüsselungsalgorithmen: bf, blowfish und aes-128-abc>2
function MixCrypto(options) { if (typeof options == 'string') options = { key: options }; options = $.extend({}, DEFAULTS, options); this.key = options.key; this.inputEncoding = options.encoding.input; this.outputEncoding = options.encoding.output; this.algorithms = options.algorithms; }
Der Verschlüsselungsalgorithmus kann konfiguriert werden, und durch die Konfiguration von Optionen können verschiedene Verschlüsselungsalgorithmen und Kodierungen verwendet werden.
3. Der Verschlüsselungsmethodencode lautet wie folgt:
MixCrypto.prototype.encrypt = function (plaintext) { return $.reduce(this.algorithms, function (memo, a) { var cipher = crypto.createCipher(a, this.key); return cipher.update(memo, this.inputEncoding, this.outputEncoding) + cipher.final(this.outputEncoding) }, plaintext, this); };
Verwenden Sie Krypto, um Daten zu verschlüsseln.
4. Der Code der Entschlüsselungsmethode lautet wie folgt:
Verwenden Sie Krypto, um Daten zu entschlüsseln.MixCrypto.prototype.decrypt = function (crypted) { try { return $.reduceRight(this.algorithms, function (memo, a) { var decipher = crypto.createDecipher(a, this.key); return decipher.update(memo, this.outputEncoding, this.inputEncoding) + decipher.final(this.inputEncoding); }, crypted, this); } catch (e) { return; } };
Verwenden Sie die Methoden „reduction“ und „reductionRight“ im Unterstrich, um Verschlüsselungs- und Entschlüsselungsalgorithmen auszuführen.
Dieser Artikel basiert auf dem Algorithmus von Min Shao. Wir entschuldigen uns für etwaige Mängel. Rookie unterwegs, mach weiter.
Der obige NodeJS-verschlüsselte Crypto-Beispielcode ist der gesamte vom Herausgeber geteilte Inhalt. Ich hoffe, dass er Ihnen eine Referenz geben kann, und ich hoffe, dass Sie die chinesische PHP-Website besuchen.
Weitere Artikel zum Thema NodeJS-Verschlüsselung Crypto-Beispielcode finden Sie auf der chinesischen PHP-Website!