Maison >interface Web >js tutoriel >Exemple de code Crypto chiffré par Nodejs

Exemple de code Crypto chiffré par Nodejs

高洛峰
高洛峰original
2017-01-10 09:17:491092parcourir

Les technologies de cryptage sont généralement divisées en deux catégories : « symétriques » et « asymétriques ».

Cryptage symétrique :

La même clé est utilisée pour le cryptage et le déchiffrement, généralement appelée "Session Key". Cette technologie de cryptage est largement utilisée aujourd'hui, comme celle utilisée par le gouvernement américain Le DES. La norme de chiffrement est une méthode de chiffrement « symétrique » typique et sa longueur de clé de session est de 56 bits.
Cryptage asymétrique :

C'est-à-dire que le cryptage et le déchiffrement utilisent des clés différentes. Il existe généralement deux clés, appelées "clé publique" et "clé privée". Les deux sont requises par paires. les fichiers cryptés ne peuvent pas être ouverts.

Le cryptage est une fonction fréquemment utilisée dans le système. Node est livré avec la puissante fonction de cryptage Crypto. Pratiquons avec un exemple simple.

1. Référence du module de cryptage :

var crypto=require('crypto');
var $=require('underscore');var DEFAULTS = {
  encoding: {
    input: 'utf8',
    output: 'hex'
  },
  algorithms: ['bf', 'blowfish', 'aes-128-cbc']
};

Élément de configuration de l'algorithme de cryptage par défaut :

Le format des données d'entrée est utf8, le format de sortie est hexadécimal, l'algorithme

utilise trois algorithmes de cryptage : bf, Blowfish et 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;
}

L'algorithme de cryptage peut être configuré, et différents algorithmes de cryptage et encodages peuvent être utilisés en configurant les options.

3. Le code de la méthode de cryptage est le suivant :

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);
};

Utilisez la cryptographie pour crypter les données.

4. Le code de la méthode de décryptage est le suivant :

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;
  }
};

Utilisez la crypto pour décrypter les données.

Utilisez les méthodes réduire et réduireRight en trait de soulignement pour exécuter des algorithmes de chiffrement et de déchiffrement.

Cet article est rédigé sur la base de l'algorithme écrit par Min Shao. Nous nous excusons pour toute lacune. Rookie sur la route, continuez.

L'exemple de code Crypto crypté par nodejs ci-dessus est tout le contenu partagé par l'éditeur. J'espère qu'il pourra vous donner une référence, et j'espère que vous visiterez le site Web PHP chinois.

Pour plus d'articles sur le code d'exemple de crypto de chiffrement nodejs, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn