javascript - 无法在 Cloudflare Worker 脚本上创建 MD5 哈希

标签 javascript node.js cloudflare serverless

我正在尝试实现请求的自定义授权,在将它们发送到微服务之前,我使用 Cloudflare 工作脚本进行授权,我无法通过工作脚本生成 MD5 哈希。

我在网上浏览了许多博客和文章,但未能达到最终结果。 非常感谢任何帮助。

下面提到的是我正在尝试做的一瞥

 addEventListener('fetch', event => {
    importScripts('https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/md5.js');
    let test = CryptoJS.MD5('test').toString();
    console.log(test);
    event.respondWith(handleRequest(event.request))
})

最佳答案

您无需导入外部库即可在 Cloudflare Workers 中计算 md5 哈希。

原生支持:

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

/**
 * Respond to the request
 * @param {Request} request
 */
async function handleRequest(request) {
  const message = "Hello world!"
  const msgUint8 = new TextEncoder().encode(message) // encode as (utf-8) Uint8Array
  const hashBuffer = await crypto.subtle.digest('MD5', msgUint8) // hash the message
  const hashArray = Array.from(new Uint8Array(hashBuffer)) // convert buffer to byte array
  const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('') // convert bytes to hex string

  return new Response(hashHex, {status: 200})
}

当触发时,它会以 86fb269d190d2c85f6e0468ceca42a20 响应,即 Hello world!md5

引用:

关于javascript - 无法在 Cloudflare Worker 脚本上创建 MD5 哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63397714/

相关文章:

security - s3 和 cloudflare 灵活的 ssl 握手

javascript - 在 AngularJS Controller 中调用函数

javascript - 如何使 toggleClass 仅应用于单击的元素

javascript - 将 Electron 进程作为普通 Node 进程运行?

node.js - node js是否容易受到时间漂移的影响?

linux - 如何增加 linux 上的最大套接字连接数?

javascript - Cloudflare 添加到我的页面的 Javascript 代码是什么?

ssl - 纯 HTTP 请求被发送到 HTTPS 端口 (NGINX)

javascript - karma 无法加载junits插件

javascript - ajax成功返回0