我试图了解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实现时,我没有得到相同的结果。
我真的需要帮助解决这个问题!如果我没有提供有关信息,请询问并尽力排除。
答案 0 :(得分:1)
您将数据输入为char数组,而应将其解释为数字(以十六进制表示)。