Node.js进修之路16——加密

未完成

1. 加密crypto

  • crypto模块中,为每一种加密算法定义了一个类
  • 可以运用getCiphers要领查看在Node.js中所有可以运用的加密算法crypto.getCiphers()
  • 可以运用getHashes()要领查看在Node.js中所有可以运用的散列算法crypto.getHashes()

2. 散列算法

  • 散列(哈希)算法用来完成一些主要处置惩罚,许可对一段数据举行考证的前提下,将该数据隐约化,或许为一大段数据供应一个校验码。
  • 运用createHash要领建立一个hash对象crypto.createHash('algorithm');
const crypto = require('crypto');
const fs = require('fs');
const shasum = crypto.createHash('sha1');// 建立hash对象,加密算法为sha1
let file = fs.ReadStream('./fs.js');//读取该文件,为s
file.on('data', (d) => {
    console.log(d);//d是file文件的Buffer对象
    shasum.update(d);// 建立一个择要
});

file.on('end', () => {
    let d = shasum.digest('hex');// 输出择要
    console.log(d);
});

/**
 * <Buffer 63 6f 6e 73 74 20 63 72 79 70 74 6f 20 3d 20 72 65 71 75 69 72 65 28 27 63 72 79 70 74 6f 27 29 3b 0a 63 6f 6e 73 74 20 66 73 20 3d 20 72 65 71 75 69 ... >
 * 74b68572a7259696f8458606d89a91a206fc3fd0
 */

3. HMAC算法

  • HMAC算法将散列算法与一个密钥连系在一起,以阻挠对署名完整性的损坏。
  • 运用createHmac要领建立一个hmac对象crypto.createHmac(algorithm, key)
  • algorithm为可以在Node.js中运用的算法
  • key为一个字符串,指定一个PEM花样的密钥
  • OpenSSL东西种,建立一个密钥openssl genrsa -out key.pem 1024
const crypto = require('crypto');
const fs = require('fs');
let pem = fs.readFileSync('./key.pem');
let key = pem.toString('ascii');
let shasum = crypto.createHmac('sha1', key);
let file = fs.ReadStream('./fs.js');
file.on('data', (data) => {
    console.log('data.toString()');
    console.log(data.toString());
    console.log('shasum.update(data)');
    console.log(shasum.update(data));
});

file.on('end', () => {
    console.log("shasum.digest('hex')");
    console.log(shasum.digest('hex'));
});
    原文作者:Karuru
    原文地址: https://segmentfault.com/a/1190000013396730
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞