我试图在PHP中生成一个以太坊地址,部分要求是生成一个64字符的十六进制私钥。我已经在我的项目中使用了phpseclib,并决定使用它的类来生成私钥。推荐的是secp256k1
曲线,我也使用了它
$privateKey = EC::createKey('secp256k1');
$privateKeyString = $privateKey->toString('PKCS8');
我得到的输出是这样的(PEM格式)
-----BEGIN PRIVATE KEY-----\r\n
MIGEAgEAMBAGByqGSM49AgEGBSuBBAAKBG0wawIBAQQgDknmmpdnS+MvAylQDbXl\r\n
WECAG51RuIViJFLw/0aR40yhRANCAARpIut7yqacMbI9TW/aT5frWKpjoDOAL15l\r\n
A/5rE+6+o/AbWES5bHej1U/ygxyqlwVizCABCSeWZf5CNoTy8nMt\r\n
-----END PRIVATE KEY-----
我已经尝试了很多方法来获得所需的64个字符(256位)十六进制代码,但没有一个工作。我尝试使用base64_decode
解码PEM,然后使用bin2hex
函数,但输出字符串几乎是310个字符。去掉页眉和页脚,我得到了268个字符的输出。但是,如果我使用$privateKey->getLength()
检查长度,我得到的输出是256。现在的问题是,我如何得到64个字符的十六进制字符串???
有人可以帮助我如何实现这一点与图书馆?
1条答案
按热度按时间bhmjp9jg1#
现在的问题是,我如何得到64个字符的十六进制字符串???
这是你想要的吗:
我正在尝试用PHP生成以太坊地址
像这样?: