【发布时间】:2014-03-27 16:47:48
【问题描述】:
我正在尝试使用 node.js javascript 验证狗狗币地址。
但我仍在努力理解算法。
我当前的 node.js 版本是 v0.10.22
据我所知(如果我错了,请纠正我)它的狗狗币地址与比特币地址没有什么不同。
所以我尝试执行以下操作
- Base58 解码地址
- 对解码后地址的一个sha256(两次sha256)计算返回结果的sha256
- 将 sha256 结果的前 4 个字节与解码地址的后 4 个字节进行比较(我认为我在这里犯了一个错误)..
当我尝试将其写入 javascript 时,base58 解码结果是正确的,当我尝试从解码值创建缓冲区时,它会抛出错误,指出该值是 not 正确
var decodedHex = new Buffer(decodedBase58Result,'hex')
上面会抛出一个错误,如果我执行decodedBase58Result.toString(),它将字符串化脚本继续但不返回预期结果的数字。
那么,有没有办法解决这个问题? 不依赖第三方 api 调用
更新: 我研究了很多,我找到了一个客户端验证器,我用一小段代码制作了一个 npm 包
在不依赖任何第三方 api/服务调用的情况下验证地址。
【问题讨论】:
-
你能举一个有效的狗狗币地址的例子吗?
-
@alex 一个狗狗币地址
DBKh7QAP9gkXncVK32jtfae4QXChPwsyKH及其base58 解码值5.868133917508844e+59 -
node-dogecoin 公开了
validateaddress命令。您可以使用它,尽管我不确定这是否算作“第三方 api 调用”。 -
@JamesAllardice 是的,我见过那个模块,它需要一个狗狗币守护进程来执行命令,验证是我唯一想做的事情,对于这么简单的事情来说似乎有很多额外的东西.
标签: javascript node.js cryptography bitcoin dogecoin-api