
Window.crypto库与QuickJS引擎的封装和调用-易语言
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本文介绍如何在易语言环境中使用Window.crypto库,并实现其与QuickJS JavaScript引擎的有效封装及调用方法。
经常看到有人需要使用AES-GCM-128算法进行加密解密操作,然而网上关于此的文档较少。实际上,在Telegram登录页面就应用了这种算法,这可能让不少用户感到困扰。这个加密方式常见于浏览器内置接口window.crypto.subtle中,该接口不仅支持该类型的加密,并且还支持许多其他加密算法如RSA和DES等。
这里演示一个使用crypto-AES-GCM-128进行调用的例子:
```javascript
function ___crypto__test(keyData, iv, data) {
const format = raw,
algorithm = AES-GCM,
extractable = true,
usages = [encrypt, decrypt];
window.crypto.subtle.importKey(
format,
keyData,
algorithm,
extractable,
usages
).then(key => {
return window.crypto.subtle.encrypt({
name: algorithm,
iv: iv
},
key,
data).then(result => { console.log(Array.from(new Uint8Array((result)))) });
})
}
console.log(___crypto__test(
new Uint8Array([23, 113, 57, 6, 35, -69, -60, 98, 84, -17, -125, -49, 18, 6,-92 ,32]),
new Uint8Array([47, 46 ,123 ,78 ,36 ,14 ,109 ,50 ,121 ,64 ,11, 38 ]),
new Uint8Array([50, 49, 48])
));
```
以下是关于`crypto.subtle.importKey`的接口介绍:
```javascript
const result = crypto.subtle.importKey(
format,
keyData,
algorithm,
extractable,
usages);
```
- `format`: 字符串,描述要导入密钥的数据格式。可以是以下之一:raw(原始格式),pkcs8(PKCS#8格式),spki(SubjectPublicKeyInfo 格式)或 jwk (JSON Web 密钥格式)。
- `keyData` : 是ArrayBuffer, TypedArray 或 DataView,包含给定格式的密钥的数据。对于jwk类型,则是一个包含了键对象的 JSONWebKey 对象。
- `algorithm`: 字典对象,定义了要导入的密钥类型,并提供额外的算法特定参数。例如:RsaHashedImportParams(用于RSASSA-PKCS1-v1_5, RSA-PSS 或 RSA-OAEP),EcKeyImportParams (ECDSA或ECDH), HmacImportParams (对于 HMAC)。
- `extractable`: 布尔值,表明是否有可能使用SubtleCrypto.exportKey()或 SubtleCrypto.wrapKey()导出密钥。
全部评论 (0)


