當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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