MD5:消息摘要算法(Message-Digest Algorithm) SHA家族:安全散列算法( Secure Hash Algorithm ) 1.首先看一个简单的加密 "use strict"; //引入crypto模块 const crypto = require("crypto"); //创建一个使用md5加密的hash对象,也可以使用sha1.sha256.sha512加密 const hash = crypto.createHash("md…
Diffie-Hellman( DH ):密钥交换协议/算法 ( Diffie-Hellman Key Exchange/Agreement Algorithm ) 百科摘录: Diffie-Hellman是一种建立密钥的方法,而不是加密方法 这个机制的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥, 然后可以用这个密钥进行加密和解密, 但是注意,这个密钥交换协议/算法只能用于密钥的交换,而不能进行消息的加密和解密, 双方确定要用的密钥后,要使用其他对称密钥操作加密算法实现加密和解密消息.…
HMAC:哈希消息认证码 ( Hash-based Message Authentication Code ) HMAC是密钥相关的哈希算法 使用 HMAC 进行加密的Node实现的一种方法: "use strict";//引入crypto内置模块 const crypto = require("crypto"); //实例化一个hmac对象,使用md5进行加密,加密密钥是secret-key const hmac = crypto.createHmac("…
RSA加密算法 写在前面: 了解RSA算法的原理请查看下面的文章 一文搞懂 RSA 算法 来源:简书  作者:somenzz 在使用 Node 进行 RSA 加密之前我们首先需要获取RSA公共和私有密钥: 1.下载 OpenSSL 两个网址:一个是 官方网站 ,另一个是社区整理网站 2.安装 OpenSSL ,查看下面的文章 OpenSSL下载安装 来源:简书  作者:涓涓细流_708d 3.使用 OpenSSL 生成 RSA 密钥 a.打开命令行,进入到安装OpenSSL的bin目录下(我的是…
AES:高级加密标准 ( Advanced Encryption Standard ) AES是一种对称加密算法:加密需要密钥,且加密密钥和解密密钥相同 下面是AES加密的Node实现: "use strict"; const crypto = require("crypto"); //封装使用AES加密的方法 function aesEncrept(data, key){ //实例化一个cipher加密对象,使用aes192进行加密,key作为密钥 const c…
javaScript代码如下: 'use strict'; const crypto = require('crypto'); //实例化一个AES加密对象 const aesEncrept = crypto.createCipher('aes192', 'key'); aesEncrept.on('readable', () => { let data = aesEncrept.read(); console.log(1); console.log(data); if(data) { cons…
We can using gzip and crypto with stream: const fs = require('fs') const zlib = require('zlib') const file = process.argv[2]; const crypto = require('crypto'); const {Transform} = require('stream'); const progress = new Transform({ transform(chunk, e…
fs模块的三个常用方法 1.fs.readFile() -- 读文件 2.fs.writeFile() -- 写文件 3.fa.stat() -- 查看文件信息 fs模块不同于其它模块的地方是它有异步和同步两种方法,其它模块只有异步方法,异步和同步的方法名区别在于同步方法在异步的方法名后面加了"Sync" 1.fs.readFile() //使用ES的严格模式 "use strict"; //引入fs模块 const fs = require("fs&qu…
fs.readdir(path[, options], callback) 例: "use strict"; const fs = require("fs"); const path = require("path"); //获取当前文件所在的绝对路径 let filepath = path.resolve(); fs.readdir(filepath, "utf-8", function(err, files){ if(er…
"流"是一种抽象的数据结构 通过使用"流"可以将一段数据分割成几段,并按顺序传输,使用"流"可以降低对系统性能的要求,减少对CPU的消耗 Stream有三个响应事件 1.data -- 表示数据正在传输 2.end  -- 表示数据传输完成 3.error -- 表示数据传输有误 我们以创建一个文档流读取为例: //使用严格模式 "use strict"; //引入fs模块 const fs = require("f…