Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
Node.js PayFast md5哈希生成器_Node.js_Md5 - Fatal编程技术网

Node.js PayFast md5哈希生成器

Node.js PayFast md5哈希生成器,node.js,md5,Node.js,Md5,我正在用Payfast测试一个付费购物车。他们需要的一件事是一个签名,它是一个基于md5哈希的签名,我引述如下: 传输数据的安全签名,采用提交变量的MD5散列形式 从中创建哈希的字符串是 使用“&”作为名称的所有非空变量的名称-值对 分隔符,例如name\u first=John&name\u last=Doe&email\u address=…其中 配对按它们在此页面上的显示顺序列出 此哈希将由PayFast引擎和值重新生成 比较以确保数据传输的完整性 我已经在Payfast沙盒中测试了我的字

我正在用Payfast测试一个付费购物车。他们需要的一件事是一个签名,它是一个基于md5哈希的签名,我引述如下:

传输数据的安全签名,采用提交变量的MD5散列形式

从中创建哈希的字符串是 使用“&”作为名称的所有非空变量的名称-值对 分隔符,例如name\u first=John&name\u last=Doe&email\u address=…其中 配对按它们在此页面上的显示顺序列出

此哈希将由PayFast引擎和值重新生成 比较以确保数据传输的完整性

我已经在Payfast沙盒中测试了我的字符串,我得到了相同的字符串。当我在沙箱中创建md5散列时,一切都很完美

当我在节点中生成散列时,我得到一个不同的散列。我试过使用:

crypto、md5散列、blueimp-md5和salted-md5(带或不带密码短语(secret))但从未获得在Payfast沙盒环境中生成的相同md5散列

我试过:

let saltedHash = md5(value, "Perfectstuff123");
let saltedHash = saltedMd5(value, "Perfectstuff123");
值是字符串(我非常确定它是正确的,因为我已经将我的节点字符串与沙盒中的字符串进行了比较),而“Perfectstuff123”是需要加密的密码短语或秘密

我不确定它是utf-8还是utf-16或其他什么


有什么建议吗?

您是否尝试过
CrtyoJS.MD5(value.toString()
??其中value是带有密码短语的URL编码字符串(如果有)。您是否尝试过
CrtyoJS.MD5(value).toString()
??其中,value是带有密码短语的URL编码字符串(如果有)。