Node学习-第六章-express中间件与RESful API接口规范(下)

express 学习

工具模块-utils文件夹

  1. mod5.js
    md5 加密方式, 使用的是node内置中间件,crypto。
    node内置 crypto模块提供加密功能,其中包括一组用于OpenSSL的散列、HMAC、加密、解密、签名和验证功能的包装器。
    md5加密优化:
    1. 明文加入前缀 实现加密增强
    2. 明文需要复杂

createHash()方法用于创建Hmac实例。HMAC对象不能直接使用new关键字创建。

HMAC是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code)的缩写

使用hmac.update()计算所有传递数据的HMAC摘要。编码可以是’hex’、‘latin
1’或’base64’。如果提供了编码,则返回字符串;否则返回Buffer;

const crypto = require('crypto'); 
var d = crypto.createHash('md5').update('by'+'121').digest('hex');
console.log('d', d);
module.exports = (str) => {
   
   
 return  crypto
 .createHash('md5')
 .update('by'+str)
 .digest('hex');
}

express 使用md5加密的信息, 调取时是否需要解密 ?
在使用MD5加密存储用户密码的Express应用中,‌调取时不需要解密。‌
MD5是一种不可逆的加密算法,‌意味着一旦数据被MD5加密,‌就无法直接解密还原成原始数据。‌在Express框架中,‌如果用户密码是通过MD5加密后存储在数据库中的,‌那么在后续的调取过程中,‌不需要进行解密操作。‌这是因为MD5加密的特性决定了它只能用于单向验证,‌即通过输入明文密码与数据库中存储的加密密码进行比对,‌来验证用户输入的密码是否正确。‌

  1. jwt.js
    使用第三方包jsonwebtoken。
    访问官网: jsonwebtoken,并且找到你当前项目语言支持的版本。
$ npm install jsonwebtoken

使用说明:

  1. jwt.sign(payload,secretOrPrivateKey,[options,callback])
    返回值说明:
    (异步调用)如果提供了回调,则使用err或JWT调用回调。
    (同步调用)以字符串形式返回JsonWebToken
    参数说明:
    1.payload可以是一个对象文字,缓冲区或字符串表示有效的JSON。
    2.secretOrPrivateKey是字符串(utf-8编码)、缓冲区、对象或KeyObject,其中包含HMAC算法或PEM的秘密 RSA和ECDSA的加密私钥。
    3.options 配置项,常用配置项,expiresIn 过期时间 120,“2 days”,“10h”,“7d”。(“120"等于"120ms”)algorithm 指定加密算法,默认HMAC SHA256。
  2. jwt.verify(token,secretOrPublicKey,[options,callback])
    返回值说明:
    (异步调用)如果提供了回调,则函数异步操作。如果签名有效并且可选的过期、受众或颁发者有效,则使用解码的有效负载调用回调。如果没有,它将被调用并返回错误。
    (同步调用)如果没有提供回调函数,则函数同步动作。如果签名有效并且可选的过期、访问者或颁发者有效,则返回解码的有效负载。如果没有,它将抛出错误。
    参数说明:
    1.token是JsonWebToken字符串
    2.secretOrPublicKey是一个字符串(utf-8编码)、缓冲区或KeyObject,其中包含HMAC算法的秘密或PEM RSA和ECDSA的加密公钥。
    3.optio配置项
    受众 audience如果你想检查观众(aud),在这里提供一个值。可以针对字符串、正则表达式或字符串和/或正则表达式的列表来检查受众,
    签发人 issu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值