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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。