Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Ruby SHA转换为javascript_Javascript_Ruby_Encryption_Sha - Fatal编程技术网

将Ruby SHA转换为javascript

将Ruby SHA转换为javascript,javascript,ruby,encryption,sha,Javascript,Ruby,Encryption,Sha,我在ruby上有一个将字符串转换为加密SHA代码的方法,我想知道是否有可能使用javascript实现这一点? 事实上,我不知道这个SHA的具体配置是什么(我相信是512,但我不确定,我试过了,但没有达到相同的结果) 也许通过了解上述方法中使用的确切配置,我可以在javascript中找到更简单的方法 提前谢谢 以防任何人需要该方法将字符串转换为十六进制UTF-16,如下所示: function toHex(str) { var group = [], i; for (i =

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

也许通过了解上述方法中使用的确切配置,我可以在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';
}
函数toHex(str){ var组=[],i; 对于(i=0;i得到不同结果的原因是Ruby代码将
'testing'
转换为UTF-16,而jsSHA示例使用ASCII。如果将“测试”扩展到16位Unicode,则会得到十六进制的
“7400650073007400069006E006700”
,这与Ruby给出的答案相同。当然,您还需要将其设置为SHA-512,如您所述

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';
}