PyNaCl - 打印 PrivateKey 原始十六进制值

PyNaCl - Printing PrivateKey raw hex value

我目前正在试验椭圆曲线,为了简单起见,我使用 python。

我有这个 class (NaCl/PrivateKey) 的实例,它已正确实例化。

但是看着它的public class变量,我似乎只能查询大小。

是我的误会吗,有没有一个public变量我可以查询获取底层私钥数据(同样我只是玩和学习,不用于生产)。

我已经能够打印 privateKey 实例,它会打印一个像这样的直接字节数组:\xa6_\xe5\xa3\xc3\xdd\x96\x04C\x03%\x0f\xe7)y\x92\n\xf7#\xee\xcdo\xff\xaf%\xedZ\xd4\x0e\xecr\xb4

然后我可以在 Python repl 中为 b 添加前缀 .toHex 调用以获取:

a65fe5a3c3dd96044303250fe72979920af723eecd6fffaf25ed5ad40eec72b4

是否有任何 Python 忍者可以指导我直接从实例进行更直接的访问?

我能做的最好的是 print(binascii.hexlify(privateKey.__bytes__())) - 但这似乎不是一个合适的方法,直接访问 __bytes__

print(bytes(privateKey).hex()) 就是答案。 __bytes__ 方法是一个魔术方法,当一个对象被转换为字节时被调用。 bytes 对象有一个方法 hex 来转换它们。