Gemeinsame Verschlüsselungsalgorithmen werden im Grunde genommen in diese Kategorien unterteilt: 1: Linearer Hash -Algorithmus, 2: Symmetrischer Verschlüsselungsalgorithmus, 3. Asymmetrischer Verschlüsselungsalgorithmus (Aufzeichnung)
Linearer Hash -Algorithmus (Signaturalgorithmus): MD5, SHA1, HMAC
Beispielsweise wird MD5: Message-Digest-Algorithmus 5 (Informationsverdachungsalgorithmus 5) verwendet, um eine vollständige und konsistente Informationsübertragung zu gewährleisten.
Merkmale:
1. Kompressibilität: Die berechnete MD5 -Wertlänge wird für Daten jeder Länge festgelegt.
2. Einfach zu berechnen: Es ist einfach, den MD5 -Wert aus den Originaldaten zu berechnen.
3. Modifikationswiderstand: Nehmen Sie Änderungen an den ursprünglichen Daten vor, auch wenn nur 1 Byte geändert wird, sind die resultierenden MD5 -Werte sehr unterschiedlich.
4. Starke Anti-Kollision: Es ist bekannt, dass die Originaldaten und der MD5-Wert sehr schwierig sind, Daten mit demselben MD5-Wert zu finden (d. H. Gefällige Daten).
Die Funktion von MD5 besteht darin, Informationen mit großer Kapazität in ein vertrauliches Format "komprimiert" zu werden, bevor ein privater Schlüssel mit digitaler Signatursoftware unterzeichnet wird.
Symmetrischer Verschlüsselungsalgorithmus: AES, DES, 3DES
Beispielsweise ist AES: (Advanced Encryption Standard) auch als Rijndael -Verschlüsselungsmethode in der Kryptographie bezeichnet, die von der US -Bundesregierung ein Blockverschlüsselungsstandard ist. Dieser Standard wird verwendet, um die ursprüngliche DES zu ersetzen, und wurde von mehreren Parteien analysiert und wird weltweit weit verbreitet.
Asymmetrischer Verschlüsselungsalgorithmus: RSA, DSA, ECC
Zum Beispiel RSA: RSA Public Key Cryptography System. Das sogenannte öffentliche Schlüsselkryptographie-System besteht darin, verschiedene Verschlüsselungsschlüssel und Entschlüsselungsschlüssel zu verwenden. Es ist ein Kryptografie -System, das "Entschlüsselungsschlüssel aus bekannten Verschlüsselungsschlüssel abgeleitet ist", ist rechnerisch nicht durchführbar. "
Im Cryptography -System des öffentlichen Schlüssels ist der Verschlüsselungsschlüssel (d. H. Der öffentliche Schlüssel) PK öffentliche Informationen, während der Entschlüsselungsschlüssel (d. H. Geheimschlüssel) SK vertraulich gehalten werden muss. Der Verschlüsselungsalgorithmus E und der Entschlüsselungsalgorithmus D sind ebenfalls öffentlich. Obwohl die Entschlüsselungsschlüssel SK vom öffentlichen Schlüssel PK bestimmt wird, kann SK nicht basierend auf der PK berechnet werden.
Crypto -Modul in NodeJs
Node verwendet die OpenSSL -Bibliothek, um seine Verschlüsselungstechnologie zu implementieren, da OpenSL bereits ein weit verbreiteter Verschlüsselungsalgorithmus ist. Es enthält Algorithmen wie MD5 oder SHA-1, die Sie in Ihrer Anwendung verwenden können.
Der folgende Code verwendet die Implementierungsmethode des Crypto -Moduls des Algorithmus
/*** * @Author Chenjianxiang * @date 2016-07-07 */var Crypto = required ('crypto'); var key = '12345670'; exports.des = {Algorithmus: {ecb: 'Des-ecb', cbc: des-cbc '}, Encrypt: function, ask. var iv = neuer Puffer (iv? IV: 0); var cipher = crypto.createcipheriv (this.algorithm.ecb, key, iv); cipher.setAutopadding (true) // Standard true var cipher = cipher.update (plainText, 'utf8', 'base64'); cipher += cipher.final ('base64'); Cipher zurückgeben; }, entschlüsselt: function (Encrypt_text, iv) {var key = new buffer (key); var iv = neuer Puffer (iv? IV: 0); var decipher = crypto.createcipheriv (this.algorithm.ecb, key, iv); decipher.setAutopadding (true); var txt = decipher.update (Encrypt_text, 'Base64', 'utf8'); txt += decipher.final ('utf8'); txt zurückgeben; }};Verwendung der DES -Verschlüsselungs- und Entschlüsselungsmethode
// Encrypt var Cryptutil = Request ("./ utils/krypta"); var str = "/upload/image/201602120012.jpg";var Encrypt_text = Cryptutil.des.encrypt (str, 0); var decrypt_text = cryptutil.des.decrypt (Encrypt_text, 0); console.log (Encrypt_text); console.log (decrypt_text);Ausgangsergebnis:
I+qwosxqvbq18kvmx3ainomhbs3nt+v64s
/Upload/image/201602120012.jpg
Die einfache Implementierung von node.js des Verschlüsselung oben ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.