小编Chr*_* C.的帖子

Javascript 十六进制转 Base32 编码

我在将我知道在 Ruby 中有效的东西转换为 Javascript 时遇到问题(在这种情况下是 node.js,但如果可能的话,我想要浏览器支持的解决方案)

给定一个十六进制格式的 sha256 摘要:

"0b08dfe80a49490ae0722b9306ff53c5ab3552d17905814e6688ee62c373"
Run Code Online (Sandbox Code Playgroud)

将其转换为如下所示的 base32 表示:

"BMEN72AKJFEQVYDSFOJQN72TYWVTKUWRPECYCTTGRDXGFQ3T"
Run Code Online (Sandbox Code Playgroud)

我可以通过运行一个快速例程将十六进制转换为字符代码字符串,然后对它进行 base32 编码,从而在 ruby​​ 中做到这一点。我似乎无法在 JavaScript 中找到类似的方法。似乎没有可靠的方法来获取字符代码或 Base32 编码。

以 Ruby 代码为例,我只是一次将十六进制分块出 1 个字符,然后进行快速的十六进制-> 十进制-> 字符转换:

s = "0b08dfe80a49490ae0722b9306ff53c5ab3552d17905814e6688ee62c373"
s2 = s.scan(/../).map { |x| x.hex.chr }.join
s3 = Base32.encode(s2)
Run Code Online (Sandbox Code Playgroud)

中间字符串如下所示:

"\v\b\xDF\xE8\nII\n\xE0r+\x93\x06\xFFS\xC5\xAB5R\xD1y\x05\x81Nf\x88\xEEb\xC3s\x8AM"
Run Code Online (Sandbox Code Playgroud)

javascript node.js

4
推荐指数
1
解决办法
4864
查看次数

标签 统计

javascript ×1

node.js ×1