当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js crypto.timingSafeEqual()用法及代码示例


Node.js 是一个跨平台、开源的 back-end JavaScript 运行时环境,它使用 V8 引擎在 Web 浏览器之外执行 JavaScript 代码。 Node.js 允许开发人员利用 JavaScript 创建命令行工具和服务器端脚本,其中涉及在将页面发送到用户浏览器之前在服务器上运行脚本。加密函数是通过 crypto 模块提供的,其中包括 OpenSSL 的哈希、HMAC、密码、解码、签名和验证方法的包装器。

crypto.timingSafeEqual() 函数用于确定两个变量是否相等,而不暴露可能允许攻击者猜测其中一个值的计时信息。恒定时间算法支撑它。

用法:

crypto.timingSafeEqual(a, b)

参数:

  • a:它是一个变量,必须是 Buffer、TypedArray 或 DataView。
  • b:它是一个变量,必须是 Buffer、TypedArray 或 DataView,并且长度必须与a.

返回值:如果 a 等于 b,则为 true,否则为 false。

示例 1:

Javascript


import crypto from 'crypto'; 
  
const a = Buffer.alloc(5, 'b'); 
const b = Buffer.alloc(5, 'b'); 
  
let res = crypto.timingSafeEqual(a, b); 
console.log(res);

输出:

true

示例 2:

Javascript


import crypto from 'crypto'; 
  
const a = new Int8Array(8); 
const b = new Int8Array(a); 
a[0] = 2; 
b[1] = 5; 
  
let res = crypto.timingSafeEqual(a, b); 
console.log(res);

输出:

false

参考: https://nodejs.org/dist/latest-v12.x/docs/api/crypto.html#crypto_crypto_timingsafeequal_a_b


相关用法


注:本文由纯净天空筛选整理自aayushmohansinha大神的英文原创作品 Node.js crypto.timingSafeEqual() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。