热衷于downvoters和/或关闭者:如果你认为这是SO的offtopic,请指出我的其他StackExchange站点,这个问题更合适.
如何在PHP中实现ECDSA曲线secp256k1?
或者说:是否有任何解决方案 - 即.包括专业课程 - 已经完成了吗?
我可以看到有很多开源库,类和其他语言可用的东西(JavaScript,Python,...)但我整个下午都在谷歌上搜索一些/任何PHP解决方案而且...... 没有!.
这是我的比特币项目,我需要一种如何从私钥生成公钥的方法 ...... 然后我想生成最终的比特币地址.
我知道如何生成私钥(不要担心它是随机的或不是 - 这里不是问题)我有256位十六进制和WIF符号.但下一步:提出一个公钥,然后是最终的比特币地址,对我来说是一个问题,因为我确实没有加密的背景,我知道解决方案是以某种方式利用secp256k1.
这是我到目前为止:
// Random bytes // $private_key = bin2hex(openssl_random_pseudo_bytes(32)); // But using brainwallet.org style to have easy comparison $passphrase = "correct horse battery staple"; $private_key = hash('sha256', $passphrase); var_dump ("PrivKey: $private_key"); // Bitcoin::privKeyToWIF from github.com/mikegogulski/bitcoin-php $wif = Bitcoin::privKeyToWIF($private_key); var_dump ("WIF PrivKey: $wif"); // And now I don't know where to even start ...
tl; dr如何在PHP中实现这一点?(..和privKey->之前的pubKey转换)
我知道......
http://github.com/mikegogulski/bitcoin-php ..这是非常整洁,有很多有用的方法和方法如何通过RPC 控制bitcoind,但不幸的是,缺少可以处理privKey-> pubKey机制的纯PHP方法.
http://bitcoinphp.com/ ..我在那里找不到它.
PHP中的openssl扩展,但不幸的是OPENSSL-PHP文档提到的唯一摘要方法是'ecdsa-with-SHA1',如果我错了,请纠正我,但我需要'ecdsa-with-SHA256',或者其他什么东西像那样 (?)
我甚至试图从bitcoinjs.js转换算法,但凭借我的加密知识,我无法提取任何东西的要点.我根本不理解那些曲线及其位操作和其他怪异的东西.
我正在寻找PURE PHP解决方案.我不是在寻找使用shell运行bitcoind然后解析密钥对的JSON然后...
为什么没有一段代码可以在PHP中完全处理这个问题?还是在那里?!:)