未完一、加密crypto在crypto模块中,为每一种加密算法定义了一个类。可以使用getCiphers方法查看Node.js中可以使用的所有加密算法crypto.getCiphers()可以使用getHashes()方法查看Node.js中可以使用的所有哈希算法前提是验证某条数据,数据模糊,或对大数据提供校验码。使用createHash方法创建哈希对象crypto.createHash('algorithm');constcrypto=require('crypto');constfs=require('fs');constshasum=crypto.createHash('sha1');//创建一个hash对象,加密算法为sha1letfile=fs.ReadStream('./fs.js');//读取文件,sfile.on('data',(d)=>{console.log(d);//d是文件file的Buffer对象shasum.update(d);//创建摘要});file.on('end',()=>{letd=shasum.digest('hex');//输出摘要console.log(d);});/***<缓冲区636f6e73742063727970746f203d2072657175697265282763727970746f27293b0a636f6e7374206673206673203D207265717569...违反签名完整性。使用createHmac方法创建一个hmac对象crypto.createHmac(algorithm,key)algorithm是Node.js中可以使用的算法key是一个字符串,在OpenSSL工具中指定一个PEM格式的key,创建一个keyopensslgenrsa-outkey.pem1024constcrypto=require('crypto');constfs=require('fs');letpem=fs.readFileSync('./key.pem');letkey=pem.toString('ascii');letshasum=crypto.createHmac('sha1',key);letfile=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'));});
