未完成
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'));
});