gpt4 book ai didi

javascript - 将 Ruby SHA 转换为 javascript

转载 作者:数据小太阳 更新时间:2023-10-29 08:05:48 24 4
gpt4 key购买 nike

我在 ruby​​ 上有这种方法,它可以将字符串转换为加密的 SHA 代码,我想知道是否有可能使用 javascript 实现这一点?事实是我不知道这个 SHA 的具体配置是什么(我相信它是 512 但我不确定,我试过 few javascript online tools 但我无法获得相同的结果)

require 'digest'
require 'iconv'
word = 'testing'
puts Digest::SHA2.new(512).hexdigest(Iconv.conv('UTF-16LE','ISO-8859-15', word))

#=> 6e42b2c2a6351036b78384212774135d99d849da3066264983e495b5f74dc922e3d361b8ea9c8527169757233ed0bd4e56b2c42aab0a21bbcca67219dc53b472

也许通过了解上述方法中使用的确切配置,我可以发现在 javascript 中更容易?

提前致谢


以防万一有人需要该方法将字符串转换为十六进制 UTF-16,这里是:

function toHex(str) {
var group = [], i;

for (i = 0; i < str.length; i += 1) {
group.push(str.charCodeAt(i).toString(16));
}

return group.join('00') + '00';
}

最佳答案

您得到不同结果的原因是因为 Ruby 代码将 'testing' 转换为 UTF-16,而 jsSHA 示例使用的是 ASCII。如果将“testing”扩展为 16 位 Unicode,您将得到十六进制的 "740065007300740069006e006700",它给出与 Ruby 相同的答案。当然,您还需要像您提到的那样将其设置为 SHA-512。

关于javascript - 将 Ruby SHA 转换为 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7804848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com