Les algorithmes de chiffrement communs sont essentiellement divisés en ces catégories: 1: Algorithme de hachage linéaire, 2: algorithme de chiffrement symétrique, 3. Algorithme de chiffrement asymétrique (enregistrement)
Algorithme de hachage linéaire (algorithme de signature): MD5, SHA1, HMAC
Par exemple, MD5: algorithme de message-digeur 5 (algorithme d'information-digest 5), est utilisé pour garantir une transmission d'informations complète et cohérente.
Caractéristiques:
1. Compressibilité: la longueur de valeur MD5 calculée est fixe pour les données de toute longueur.
2. Facile à calculer: il est facile de calculer la valeur MD5 à partir des données d'origine.
3. Résistance à la modification: apportez des modifications aux données d'origine, même si un seul octet est modifié, les valeurs MD5 résultantes sont très différentes.
4. Anti-collision forte: il est connu que les données d'origine et sa valeur MD5 sont très difficiles à trouver des données avec la même valeur MD5 (c'est-à-dire des données forgées).
La fonction de MD5 est de permettre aux informations de grande capacité d'être "compressées" dans un format confidentiel avant de signer une clé privée avec un logiciel de signature numérique (c'est-à-dire la conversion d'une chaîne d'octets de n'importe quelle longueur en une chaîne hexadécimale d'une certaine longueur)
Algorithme de chiffrement symétrique: AES, DES, 3DES
Par exemple, AES: (Advanced Encryption Standard) est également connu sous le nom de méthode de cryptage Rijndael en cryptographie, qui est une norme de cryptage en bloc adoptée par le gouvernement fédéral américain. Cette norme est utilisée pour remplacer le DES d'origine et a été analysée par plusieurs parties et est largement utilisée dans le monde.
Algorithme de chiffrement asymétrique: RSA, DSA, ECC
Par exemple, RSA: RSA Public Key Cryptography System. Le soi-disant système de cryptographie de clés publics est d'utiliser différentes clés de chiffrement et clés de décryptage. Il s'agit d'un système de cryptographie qui "dériver des clés de déchiffrement des clés de chiffrement connues est irréalisable."
Dans le système de cryptographie de la clé publique, la clé de cryptage (c'est-à-dire la clé publique) PK est des informations publiques, tandis que la clé de décryptage (c'est-à-dire la clé secrète) doit être confidentielle. L'algorithme de chiffrement E et l'algorithme de décryptage sont également publics. Bien que la clé de décryptage SK soit déterminée par la clé publique PK, SK ne peut pas être calculée sur la base du PK.
Crypto module dans Nodejs
Node utilise la bibliothèque OpenSSL pour implémenter sa technologie de chiffrement, car OpenSSL est déjà un algorithme de chiffrement largement utilisé. Il comprend des algorithmes comme MD5 ou SHA-1 que vous pouvez utiliser dans votre application.
Le code suivant utilise la méthode d'implémentation de l'algorithme du module Crypto
/ *** * @Author Chenjianxiang * @Date 2016-07-07 * / var crypto = required ('crypto'); var key = '12345670'; exports.des = {algorithme: {ecb: 'des-ecb', cbc: 'des-cbc'}, encrypt: function (plaine var iv = nouveau tampon (iv? iv: 0); var cipher = crypto.createcipheriv (this.algorithm.ecb, key, iv); cipher.setAutopadding (true) // par défaut true var cipher = cipher.update (plaintext, 'utf8', 'base64'); Cipher + = Cipher.Final ('Base64'); Retour Cipher; }, decrypt: function (encrypt_text, iv) {var key = new buffer (key); var iv = nouveau tampon (iv? iv: 0); var Deciffher = crypto.CreateDecipheriv (this.algorithm.ecb, key, iv); Decipher.setAutopadding (true); var txt = Decipher.update (Encrypt_text, 'Base64', 'UTF8'); txt + = decipher.Final ('utf8'); retour txt; }};Utilisation de la méthode du cryptage et du décryptage
// Encrypt var cryptutil = require ("./ utils / crypt"); var str = "/upload/image/201602120012.jpg" cryptutil.des.decrypt (encrypt_text, 0); console.log (encrypt_text); console.log (decrypt_text);Résultat de sortie:
I + qwosxqvbq18kvmx3ainomhbs3nt + v64s
/upload/image/201602120012.jpg
L'implémentation simple de Node.js des cryptage ci-dessus est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.