Home > Web Front-end > JS Tutorial > Nodejs encrypted Crypto example code

Nodejs encrypted Crypto example code

高洛峰
Release: 2017-01-10 09:17:49
Original
1111 people have browsed it

Encryption technologies are usually divided into two categories: "symmetric" and "asymmetric".

Symmetric encryption:

means that encryption and decryption use the same key, usually called "Session Key". This encryption technology is widely used today, such as that used by the U.S. government The DES encryption standard is a typical "symmetric" encryption method, and its Session Key length is 56 bits.
Asymmetric encryption:

means that encryption and decryption use different keys. There are usually two keys, called "public key" and "private key". Both of them are required. Use in pairs, otherwise encrypted files cannot be opened.

Encryption is a frequently used function in the system. Node comes with Crypto, a powerful encryption function. Let’s practice with a simple example.

1. Reference to the encryption module:

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

Default encryption algorithm configuration item:

The input data format is utf8, The output format is hex,

The algorithm uses three encryption algorithms: bf, blowfish, and aes-128-abc;

2. Configuration item initialization:

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;
}
Copy after login

The encryption algorithm can be configured, and different encryption algorithms and encodings can be used by configuring options.

3. The encryption method code is as follows:

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);
};
Copy after login

Use crypto to encrypt data.

4. The decryption method code is as follows:

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;
  }
};
Copy after login

Use crypto to decrypt data.

Encryption and decryption algorithms are executed through the reduce and reduceRight methods in underscore.

This article is written based on the algorithm written by Min Shao. We apologize for any shortcomings. Rookie on the road, keep going.

The above nodejs encrypted Crypto example code is all the content shared by the editor. I hope it can give you a reference, and I also hope you will visit PHP Chinese website.

For more nodejs encryption Crypto example code related articles, please pay attention to the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template