Node.js学习之路16——加密

发布时间:2019-06-04 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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'));
});

脚本宝典总结

以上是脚本宝典为你收集整理的Node.js学习之路16——加密全部内容,希望文章能够帮你解决Node.js学习之路16——加密所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: