Node crypto模块简单探究

2020-09-19  本文已影响0人  弱冠而不立

crypto 模块提供了加密功能,包括对 OpenSSL 的哈希、HMAC、加密、解密、签名、以及验证功能的一整套封装。

使用 require('crypto') 来访问该模块。

首先明确一个概念:摘要(digest)

摘要(digest):将长度不固定的消息作为输入,通过运行hash函数,生成固定长度的输出,这段输出就叫做摘要。通常用来验证消息完整、未被篡改。
摘要运算是不可逆的。也就是说,输入固定的情况下,产生固定的输出。但知道输出的情况下,无法反推出输入。

使用 update()digest() 加密:

const crypto = require("crypto");
let data = "Hello World!"
const hashMD5 = crypto.createHash("md5"); //也可以将参数改成 sha1 就是 sha1 加密算法,还可以改成 sha256

hashMD5Data = hashMD5.update(data,"utf8").digest("hex"); //这里的摘要是 16 进制的,也可以改成 base64 格式
console.log(hashMD5Data);
一般就是将加密后的数据存储进数据库,每次都是验证加密后的数据,用于保证数据传输和存储过程中的可靠
let data = "Hello World!";

const hmacSha256 = crypto.createHmac("sha256","密钥");  //第二个参数可根据实际密钥填写进行加密

hmacSha256.update(data);
hmacSha256Data = hmacSha256.digest('base64');  // 生成 base64 格式的摘要,也可向上面那样生成 hex(16进制的)
console.log(hmacSha256Data);
上一篇下一篇

猜你喜欢

热点阅读