美文网首页
Node crypto模块简单探究

Node crypto模块简单探究

作者: 弱冠而不立 | 来源:发表于2020-09-19 14:39 被阅读0次

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

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

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

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

    使用 update()digest() 加密:

    • hash 算法下的 md5 和 sha1 加密
    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);
    
    一般就是将加密后的数据存储进数据库,每次都是验证加密后的数据,用于保证数据传输和存储过程中的可靠
    • 创建加密的 HMAC 摘要
    let data = "Hello World!";
    
    const hmacSha256 = crypto.createHmac("sha256","密钥");  //第二个参数可根据实际密钥填写进行加密
    
    hmacSha256.update(data);
    hmacSha256Data = hmacSha256.digest('base64');  // 生成 base64 格式的摘要,也可向上面那样生成 hex(16进制的)
    console.log(hmacSha256Data);
    

    相关文章

      网友评论

          本文标题:Node crypto模块简单探究

          本文链接:https://www.haomeiwen.com/subject/zisjyktx.html