digest
注意
实验性模块
k6/experimental/webcrypto
已经正式发布,其功能现在通过crypto
对象在全球可用。k6/experimental/webcrypto
已被弃用,并将在不久的将来移除。要迁移您的脚本,请移除
k6/experimental/webcrypto
的导入,并改用crypto
对象。
digest()
方法生成给定数据的加密安全 摘要。摘要是从某些输入数据派生的短固定长度值。digest()
方法通常用于计算数据的校验和或验证数据的完整性。
使用
digest(algorithm, data)
参数
名称 | 类型 | 描述 |
---|---|---|
algorithm | string 或带有单个 name 字符串属性的对象 | 指定要使用的哈希函数。支持的值包括 "SHA-1" 、"SHA-256" 、"SHA-384" 和 "SHA-512" 。请注意,SHA-1 哈希函数不被认为可安全用于加密。 |
data | ArrayBuffer 、TypedArray 或 DataView | 要进行摘要计算的数据。 |
支持的算法
SHA-1 | SHA-256 | SHA-384 | SHA-512 |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
返回值
一个 Promise
,它解析为一个新的包含摘要的 ArrayBuffer
。
示例
import { crypto } from 'k6/experimental/webcrypto';
export default async function () {
const digest = await crypto.subtle.digest('SHA-256', stringToArrayBuffer('Hello, world!'));
console.log(arrayBufferToHex(digest));
}
function arrayBufferToHex(buffer) {
return [...new Uint8Array(buffer)].map((x) => x.toString(16).padStart(2, '0')).join('');
}
function stringToArrayBuffer(s) {
return Uint8Array.from(new String(s), (x) => x.charCodeAt(0));
}