菜单
开源版

digest

注意

实验性模块 k6/experimental/webcrypto 已经正式发布,其功能现在通过 crypto 对象在全球可用。k6/experimental/webcrypto 已被弃用,并将在不久的将来移除。

要迁移您的脚本,请移除 k6/experimental/webcrypto 的导入,并改用 crypto 对象。

digest() 方法生成给定数据的加密安全 摘要。摘要是从某些输入数据派生的短固定长度值。digest() 方法通常用于计算数据的校验和或验证数据的完整性。

使用

digest(algorithm, data)

参数

名称类型描述
algorithmstring 或带有单个 name 字符串属性的对象指定要使用的哈希函数。支持的值包括 "SHA-1""SHA-256""SHA-384""SHA-512"。请注意,SHA-1 哈希函数不被认为可安全用于加密。
dataArrayBufferTypedArrayDataView要进行摘要计算的数据。

支持的算法

SHA-1SHA-256SHA-384SHA-512

返回值

一个 Promise,它解析为一个新的包含摘要的 ArrayBuffer

示例

JavaScript
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));
}