Node.js crypto.timingSafeEqual() 函数
Node.js 是一个跨平台的开源后端 JavaScript 运行环境,使用V8引擎在浏览器之外执行 JavaScript 代码。Node.js 允许开发者使用 JavaScript 创建命令行工具和服务器端脚本,在将页面发送给用户浏览器之前在服务器上运行脚本。加密功能通过 crypto 模块提供,其中包括 OpenSSL 的散列、HMAC、加密、解码、签名和验证方法的包装器。
crypto.timingSafeEqual() 函数用于判断两个变量是否相等,而不会暴露出可能使攻击者猜测其中一个值的计时信息。它采用了一个常数时间的算法。
语法:
参数:
- a: 它是一个必须是Buffer、TypedArray或DataView类型的变量。
- b: 它是一个必须是Buffer、TypedArray或DataView类型的变量,并且必须与 a 的长度相同。
返回值: 如果a等于b,则为true,否则为false。
示例1:
输出:
示例2:
输出:
参考: https://nodejs.org/dist/latest-v12.x/docs/api/crypto.html#crypto_crypto_timingsafeequal_a_b