资讯专栏INFORMATION COLUMN

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

zacklee / 1811人阅读

摘要:使用方法创建一个对象创建对象,加密算法为读取该文件,为是文件的对象创建一个摘要输出摘要算法算法将散列算法与一个密钥结合在一起,以阻止对签名完整性的破坏。

未完成

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);
});

/**
 * 
 * 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"));
});

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/92953.html

相关文章

  • Node.js学习之路03——Buffer类初识

    摘要:然而,在处理流或文件流时,必须要处理二进制数据。因此,在中,定义了一个类,该类用来创建一个专门存放二进制数据的缓存区。因为在计算字符串的长度时,以位子作为一个单位,而在计算缓存区的长度时,以字节作为一个单位。 buffer对象 1. 什么是buffer 在客户端Javascript脚本代码中,对于二进制数据没有提供一个很好的支持。然而,在处理TCP流或文件流时,必须要处理二进制数据...

    DobbyKim 评论0 收藏0
  • Node.js学习之路17——DNS模块介绍

    摘要:在中,提供模块,以实现域名查找及域名解析的处理。方法用于将一个域名解析为一组记录。记录是域名服务器记录,用来指定该域名由哪个服务器进行解析。回调函数有两个参数,是域名解析失败时触发的错误对象,参数为一个数组,其中存放了所有获取到的记录。 1. DNS 在Node.js中,提供DNS模块,以实现域名查找及域名解析的处理。 在DNS模块中,提供了三个主方法及一系列便捷方法。 reso...

    roadtogeek 评论0 收藏0
  • Node.js学习之路04——Buffer对象与字符串

    摘要:对象与字符串对象的方法将对象中保存的数据转换为字符串第一个参数用于指定对象中保存的文字编码格式,默认参数值为第二个参数和第三个参数用于指定被转换数据的起始位置与结束位置,不包含结束位置对象的方法向已经创建的对象中写入字符串第一个参数为指定需 Buffer对象与字符串 1. Buffer对象的toString()方法 将Buffer对象中保存的数据转换为字符串 toString([e...

    dongfangyiyu 评论0 收藏0
  • 1月份前端资源分享

    摘要:更多资源请文章转自月份前端资源分享视频前端技术论坛融合不可错过的迷你库测试框架实例教程为你详细解读请求头的具体含意解析的库如果要用前端框架,开发流程是怎样的与有什么区别正确使用的方法是什么流程图插件小如何让元素只能输入纯文本前端技术中 更多资源请Star:https://github.com/maidishike... 文章转自:https://github.com/jsfront...

    solocoder 评论0 收藏0
  • Node.js学习之路13——HTTP与HTTPS

    摘要:和的区别服务器使用协议服务器使用协议服务器需要向证书授权中心申请证书一般免费证书何绍需要交费在少许读客户端有要求的情况下也会要求客户端使用证书服务器于客户端之间传输的是明文数据而服务器于客户端之间传输的是经过安全加密后的密文数据服务器通常使 4. HTTP和HTTPS的区别 HTTPS服务器使用HTTPS协议,HTTP服务器使用HTTP协议. HTTPS服务器需要向证书授权(Ce...

    lei___ 评论0 收藏0

发表评论

0条评论

zacklee

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<