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


Node.js keyObject.equals()用法及代碼示例


Node.js 中 crypto 模塊的 keyObject.equals(),它允許您比較兩個 key 對象。默認情況下,此方法返回一個布爾值,指示傳遞的 keyObject 是否等於該方法應用到的 key 對象。該方法根據鍵的類型、值和參數做出決策。

句法:

keyObject.equals(KeyObject);

返回值:此方法返回一個布爾值,指示傳遞的 keyObject 是否等於該方法所應用的 key 對象。

我們現在將看到 keyObject.equals(otherKeyObject) 方法的一些示例。

示例 1:讓我們再創建一個具有相同算法和屬性的 keyObject,並使用 keyObject.equals() 方法將上麵的 keyObject 與新創建的 keyObject 進行比較。

Javascript


// Importing the crypto module
const {
    webcrypto: { subtle }, KeyObject
} = require('node:crypto');
(async function () {
    //  Crypto Key Instance 
    const k1 = await subtle.generateKey({
        // Algorithm name
        name: 'AES-CBC',
         
        // Length of key in bits.
        length: 192,
    },
        // Not exportable.
        false,
         
        // Key can be used in encryption
        // and decryption
        ['encrypt', 'decrypt']);
    // Creating KeyObject-1
    const keyObject1 = KeyObject.from(k1);
    // Creating KeyObject-2 using same key Instance
    const keyObject2 = KeyObject.from(k1);
    // Comparing both KeyObjects:
    result = keyObject1.equals(keyObject2);
    // Printing the result 
    console.log(result);
})();

輸出:在上麵的示例中,使用相同的加密 key 實例創建了兩個 key 對象。然後我應用 keyObject.equals() 方法來檢查兩個關鍵對象是否相等。結果為 true,因為兩個 keyObject 都是使用相同的加密 key 實例生成的。兩個關鍵對象的所有參數和值都相同。

true

示例 2:讓我們再創建一個具有不同屬性和值的 keyObject。比較兩個 keyObject。

Javascript


// Importing the crypto module
const {
    webcrypto: { subtle }, KeyObject
} = require('node:crypto');
(async function () {
    //  Crypto Key Instance 
    const k1 = await subtle.generateKey({
        // Algorithm name
        name: 'AES-CBC',
         
        // Length of key in bits.
        length: 192,
    },
        // Not exportable.
        false,
         
        // Key can be used in encryption
        // and decryption
        ['encrypt', 'decrypt']);
    const k2 = await subtle.generateKey(
        {
            name: "HMAC",
            hash: "SHA-256",
            length: 256,
        },
        true,
        ["sign", "verify"]
    );
    // Creating KeyObject-1:
    const keyObject1 = KeyObject.from(k1);
    // Creating KeyObject-2 using same key Instance:
    const keyObject2 = KeyObject.from(k2);
    // Comparing both KeyObjects:
    result = keyObject1.equals(keyObject2);
    // Printing the result 
    console.log(result);
})();

輸出:在上麵的示例中,我們使用兩個不同的加密 key 實例創建了兩個不同的 key 對象。我們使用 AES 算法生成第一個加密 key 實例,使用 HMAC 算法生成第二個 key 實例。兩個關鍵對象的所有參數和值都不同,因此此方法返回 false。

false

參考: https://nodejs.org/api/crypto.html#keyobjectequalsotherkeyobject



相關用法


注:本文由純淨天空篩選整理自harishcarpenter大神的英文原創作品 Node.js keyObject.equals() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。