• Node.js Video Tutorials

Node.js - 加密


在 Node.js 中,crypto 是一个内置模块,提供必要的加密功能,以将安全方面整合到项目中,例如加密、解密、哈希函数等等。此模块依赖于 OpenSSL 进行其加密操作。

密码学是将数据转换成只有满足某些预定条件的用户才能理解的形式的过程。

密码学不仅仅是关于编码和解码消息,它是在日益全球化的环境中确保信息保持私密、完整和真实的。

Crypto 类

Crypto 类代表当前上下文中可用的基本密码学功能。它是 Node.js 内置库,包含 Crypto 模块。

属性

以下是 crypto 类的属性:

序号 属性及描述
1

crypto.subtle

此属性返回 SubtleCrypto 接口。

方法

以下是 Crypto 类的使用方法:

序号 方法及描述
1

crypto.getRandomValues(typedArray)

传递相同的 typedArray 数组,但其内容将被替换为新的随机数。

2

crypto.randomUUID()

此方法返回一个包含随机生成的字符串。

CryptoKey 类

CryptoKey 类用于表示创建和管理加密密钥的蓝图。

属性

以下是 CryptoKey 类可用的属性列表:

序号 属性及描述
1

cryptoKey.algorithm

返回的对象取决于用于生成密钥的算法。

2

cryptoKey.extractable

布尔值,如果密钥可以导出则为 true,否则为 false。

3

cryptoKey.type

返回一个字符串数组,包含 secret、private 或 public。

4

cryptoKey.usages

返回字符串数组。

CryptoKeyPair 类

CryptoKeyPair 类提供了一种管理和使用公钥和私钥对的结构化方法。

属性

以下是 CryptoKeyPair 类的属性列表:

序号 属性及描述
1

cryptoKeyPair.privateKey

此属性提供对密钥对私钥的访问。

2

cryptoKeyPair.publicKey

此属性提供对密钥对公钥的访问。

SubtleCrypto 类

SubtleCrypto 类是 Web Cryptography API 的一部分,旨在在 Web 应用程序中执行低级加密操作。它提供生成密钥的方法。

方法

以下是 SubtleCrypto 类的使用方法列表:

序号 方法及描述
1

subtle.decrypt(algorithm, key, data)

返回一个 Promise,解析为 ArrayBuffer 格式的解密数据。

2

subtle.deriveBits(algorithm, baseKey, length)

返回一个 Promise,解析为 ArrayBuffer 格式的派生位。

3

subtle.deriveKey(algorithm, baseKey, derivedKeyAlgorithm, extractable, keyUsages)

返回一个 Promise,解析为 CryptoKey 对象。

4

subtle.digest(algorithm, data)

返回一个 Promise,解析为 ArrayBuffer 格式的给定数据的摘要。

5

subtle.encrypt(algorithm, key, data)

返回一个 Promise,解析为 ArrayBuffer 格式的加密数据。

6

subtle.exportKey(format, key)

返回一个 Promise,解析为指定格式的密钥数据。

7

subtle.generateKey(algorithm, extractable, keyUsages)

返回一个 Promise,解析为新生成的 CryptoKey 对象,代表生成的密钥。

8

subtle.importKey(format, keyData, algorithm, extractable, keyUsages)

返回一个 Promise,解析为 CryptoKey 对象,代表导入的密钥。

9

subtle.sign(algorithm, key, data)

返回一个 Promise,解析为 ArrayBuffer 格式的给定数据的签名。

10

subtle.unwrapKey(format, wrappedKey, unwrappingKey, unwrapAlgo, unwrappedKeyAlgo, extractable, keyUsages)

返回一个 Promise,解析为 CryptoKey 对象,代表解开的密钥。

11

subtle.verify(algorithm, key, signature, data)

返回一个 Promise,解析为布尔值,指示提供的签名是否与给定数据的预期签名匹配。

12

subtle.wrapKey(format, key, wrappingKey, wrapAlgo)

返回一个 Promise,解析为包含已包装密钥数据的 ArrayBuffer 或 TypedArray。

nodejs_built_in_modules.htm
广告
© . All rights reserved.