Javascript使用Eth地址作为公钥对消息签名

时间:2018-10-17 17:10:59

标签: encryption public-key-encryption private-key web3 web3js

据我了解,在以太坊上,每个钱包都有一个私钥和一个公钥。

公钥是地址。我要实现的是用公共地址对“字符串”进行签名,以便只有该地址(带有私钥)才能“读取”消息。

我正在努力寻找最好的库来做到这一点:我见过openpgp和JEncrypt,但都需要以某种特定格式指定“公共/私有”密钥。

有没有可以帮助您的SDK?使用web3只能用私钥签名。

1 个答案:

答案 0 :(得分:1)

公钥密码术中的“签名”一词具有very specific meaning:通常表示生成数字签名以验证给定消息的内容和发送者。

您说的“ SIGN”听起来像是您要用ETH地址/公共密钥加密消息,然后解密带有钱包私钥的消息。

在公共密钥加密中,您使用公共密钥加密,然后使用私钥解密。

  

我正在努力寻找最好的库来做到这一点:我见过openpgp和JEncrypt,但都需要以某种特定格式指定“公共/私有”密钥。

对于任何pgp实现,公钥和私钥都必须采用正确的格式,这可能是ETH地址的问题,因为ETH地址是从基础密钥对派生的。 This blog post包含对ETH地址和密钥对之间关系的详细说明。