据我了解,在以太坊上,每个钱包都有一个私钥和一个公钥。
公钥是地址。我要实现的是用公共地址对“字符串”进行签名,以便只有该地址(带有私钥)才能“读取”消息。
我正在努力寻找最好的库来做到这一点:我见过openpgp和JEncrypt,但都需要以某种特定格式指定“公共/私有”密钥。
有没有可以帮助您的SDK?使用web3只能用私钥签名。
答案 0 :(得分:1)
公钥密码术中的“签名”一词具有very specific meaning:通常表示生成数字签名以验证给定消息的内容和发送者。
您说的“ SIGN”听起来像是您要用ETH地址/公共密钥加密消息,然后解密带有钱包私钥的消息。
在公共密钥加密中,您使用公共密钥加密,然后使用私钥解密。
我正在努力寻找最好的库来做到这一点:我见过openpgp和JEncrypt,但都需要以某种特定格式指定“公共/私有”密钥。
对于任何pgp实现,公钥和私钥都必须采用正确的格式,这可能是ETH地址的问题,因为ETH地址是从基础密钥对派生的。 This blog post包含对ETH地址和密钥对之间关系的详细说明。