Scrypt算法输出与预期不匹配

时间:2014-01-07 23:30:27

标签: bitcoin mining scrypt

我试图了解scrypt算法输出。

https://litecoin.info/Block_hashing_algorithm上,作者获得了headerString的scrypt加密结果:

01000000ae178934851bfa0e83ccb6a3fc4bfddff3641e104b6c4680c31509074e699be2bd672d8 d2199ef37a59678f92443083e3b85edef8b45c71759371f823bab59a97126614f44d5001d45920180 [little endian]

000000003b4ba52ab765631e20a04b88cd27f0b66d3509fb2da7781fae6d7901。 [大端]

我正在尝试复制此内容,但我无法重现该结果。我正在使用一种实现,为本文末尾的测试向量提供正确的输出:http://www.tarsnap.com/scrypt/scrypt.pdf但是当使用正确的N,r,p(1024)设置运行headerString时,1,1)我得到了结果

c17fcd0c6d698828112ade740d4e8ad76705764da3abfc49ff3bb1863cd16472。 [大端]

我尝试了同样的结果,这些实现具有相同的结果:

data = "01000000ae178934851bfa0e83ccb6a3fc4bfddff3641e104b6c4680c31509074e699be2bd672d8 d2199ef37a59678f92443083e3b85edef8b45c71759371f823bab59a97126614f44d5001d45920180";

    https://github.com/cheongwy/node-scrypt-js
var result = scrypt(data,data, 1024,1,1,32);

    https://github.com/tonyg/js-scrypt
var result = scrypt.crypto_scrypt(scrypt.encode_utf8(data), scrypt.encode_utf8(data), 1024, 1, 1, 32);

我在scrypt调用之后我只是将字节数组解析为十六进制字符串(如果需要)

我在这里遗漏了什么吗?我无法理解为什么当我根据论文验证我的scrypt实现时,我没有得到相同的结果。

我真的需要帮助解决这个问题!如果我没有提供有关信息,请询问并尽力排除。

1 个答案:

答案 0 :(得分:1)

您将数据输入为char数组,而应将其解释为数字(以十六进制表示)。