当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。