You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现的UTF8编码、SHA1哈希、Base64转码如何用Node.js等效实现?

问题原因

  • 你的代码使用了第三方utf8包做编码,其输出和Python标准UTF-8编码结果可能存在差异,Node.js内置Buffer类即可实现和Python完全一致的UTF-8编码效果
  • 缺少Node.js内置crypto模块的引入逻辑
  • 部分打印格式未和Python输出规则对齐

修正后可完全对齐Python输出的Node.js代码

// 引入内置加密模块
const crypto = require('crypto');

const payload = "my URI";
// 完全等价Python payload.encode("utf-8")
const payload_utf8 = Buffer.from(payload, 'utf-8');
console.log(payload_utf8);
// 完全等价Python hashlib.sha1(payload_utf8).digest()
const payload_sha1 = crypto.createHash('sha1').update(payload_utf8).digest();
console.log(payload_sha1);
// 完全等价Python base64.b64encode(payload_sha1)
const payload_base64 = payload_sha1.toString('base64');
// 若要和Python打印格式完全对齐(输出带b''前缀),使用下一行
console.log(`b'${payload_base64}'`);
// 仅需base64值的话直接打印console.log(payload_base64)即可

验证说明

你可以直接使用样例输入my URI测试,两段代码输出的UTF-8编码字节、SHA1哈希值、Base64编码结果完全一致。

内容的提问来源于stack exchange,提问作者Maya Boelsmand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 23:09:01