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

如何在console.log中以十六进制数据形式显示JavaScript对象

解决JS/TS中哈希/签名结果转十六进制输出的问题

针对你需要把哈希、签名的二进制结果转成和C语言输出一致的十六进制字符串的需求,直接用下面的方法即可:

核心转换逻辑(通用场景)

如果你的结果是Uint8Array(Web Crypto API、多数TS/JS加密库的标准返回格式),用这个函数转成连续十六进制字符串:

function uint8ToHex(arr: Uint8Array): string {
  return Array.from(arr)
    .map(byte => byte.toString(16).padStart(2, '0')) // 保证单个字节是两位十六进制,比如0x5 → '05'
    .join('');
}

用法示例

假设你已经得到了哈希结果hashResult(Uint8Array类型),直接打印:

console.log(uint8ToHex(hashResult));

输出会是类似a1b2c3d4ef...的纯十六进制字符串,和C语言用printf("%02x", byte)循环输出的格式完全一致,方便对比。

Node.js 特殊场景

如果是在Node.js环境中,结果可能是Buffer类型,直接用内置方法即可:

// 假设hashResult是Buffer实例
console.log(hashResult.toString('hex'));

处理ArrayBuffer类型结果

如果你的结果是ArrayBuffer,先转成Uint8Array再用上面的转换函数:

const uint8Arr = new Uint8Array(arrayBufferResult);
console.log(uint8ToHex(uint8Arr));

完整示例(Web Crypto SHA256)

给你一个可直接运行的完整例子,方便参考:

async function demoHash() {
  // 模拟待哈希的数据
  const inputData = new TextEncoder().encode("your test data");
  // 计算SHA256哈希
  const hashBuffer = await crypto.subtle.digest('SHA-256', inputData);
  // 转十六进制并打印
  const hashHex = Array.from(new Uint8Array(hashBuffer))
    .map(b => b.toString(16).padStart(2, '0'))
    .join('');
  console.log("哈希十六进制结果:", hashHex);
}
demoHash();

内容的提问来源于stack exchange,提问作者RD Florida

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 23:12:09