Web Cryptography API
Max Zhang Lv4

Web Cryptography API

Web Cryptography API 是一种新的技术,它使得我们可以在浏览器中进行加密和解密操作。

浏览器支持

Web Cryptography API 是 W3C 的一个标准,目前主流浏览器都已经支持。

接口

Crypto

Crypto 接口提供了一些加密相关的方法。

在 web 中通过crypto对象来访问Crypto接口,crypto是一个实例化的Crypto对象。

1
const crypto = window.crypto;

subtle

subtle 是一个只读属性,它返回一个SubtleCrypto对象,该对象提供了一些加密算法。

1
const subtle = crypto.subtle;

getRandomValues

getRandomValues 方法用于生成随机数。

1
2
const array = new Uint32Array(10);
crypto.getRandomValues(array);

randomUUID

randomUUID 方法用于生成 UUID。

1
const uuid = crypto.randomUUID();

SubtleCrypto

SubtleCrypto 接口提供了一些加密算法。

encrypt

encrypt 方法用于加密数据,返回的是一个Promise对象。输入的参数是一个AlgorithmIdentifier对象、一个CryptoKey对象和一个ArrayBuffer对象。

AlgorithmIdentifier对象是一个包含加密算法的对象,它包含了加密算法的名称和一些参数。

1
2
3
4
5
6
7
8
9
10
11
const algorithm = { name: "AES-GCM", iv: new Uint8Array(12) };
const key = await crypto.subtle.generateKey(
{ name: "AES-GCM", length: 256 },
true,
["encrypt", "decrypt"]
);
const encrypted = await crypto.subtle.encrypt(
algorithm,
key,
new Uint8Array(16)
);
 评论
评论插件加载失败
正在加载评论插件