Node.js crypto.timingSafeEqual() 函数

Node.js crypto.timingSafeEqual() 函数

Node.js 是一个跨平台的开源后端 JavaScript 运行环境,使用V8引擎在浏览器之外执行 JavaScript 代码。Node.js 允许开发者使用 JavaScript 创建命令行工具和服务器端脚本,在将页面发送给用户浏览器之前在服务器上运行脚本。加密功能通过 crypto 模块提供,其中包括 OpenSSL 的散列、HMAC、加密、解码、签名和验证方法的包装器。

crypto.timingSafeEqual() 函数用于判断两个变量是否相等,而不会暴露出可能使攻击者猜测其中一个值的计时信息。它采用了一个常数时间的算法。

语法:

crypto.timingSafeEqual(a, b)
JavaScript

参数:

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

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

示例1:

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);
JavaScript

输出:

true
JavaScript

示例2:

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);
JavaScript

输出:

false
JavaScript

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册