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
相关用法
- Node.js crypto.createDiffieHellman()用法及代码示例
- Node.js crypto.createSign()用法及代码示例
- Node.js crypto.createVerify()用法及代码示例
- Node.js crypto.getCiphers()用法及代码示例
- Node.js crypto.getHashes()用法及代码示例
- Node.js crypto.getCurves()用法及代码示例
- Node.js crypto.getDiffieHellman()用法及代码示例
- Node.js crypto.pbkdf2()用法及代码示例
- Node.js crypto.createHash()用法及代码示例
- Node.js crypto.createHmac()用法及代码示例
- Node.js crypto.randomBytes()用法及代码示例
- Node.js crypto.publicDecrypt()用法及代码示例
- Node.js crypto.pbkdf2Sync()用法及代码示例
- Node.js crypto.createECDH()用法及代码示例
- Node.js crypto.createDecipheriv()用法及代码示例
- Node.js crypto.createCipheriv()用法及代码示例
- Node.js crypto.createDiffieHellmanGroup()用法及代码示例
- Node.js crypto.privateDecrypt()用法及代码示例
- Node.js crypto.generateKeyPair()用法及代码示例
- Node.js crypto.publicEncrypt()用法及代码示例
- Node.js crypto.generateKeyPairSync()用法及代码示例
- Node.js crypto.randomFillSync()用法及代码示例
- Node.js crypto.randomFill()用法及代码示例
- Node.js crypto.scrypt()用法及代码示例
- Node.js crypto.privateEncrypt()用法及代码示例
注:本文由纯净天空筛选整理自aayushmohansinha大神的英文原创作品 Node.js crypto.timingSafeEqual() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。