试图找出最好的方法。 在web3j / ethereum应用程序上工作时,我需要一种方法来验证服务器生成的地址并由应用程序用户使用。 我的做法是:
在web3j或web3js(可用于服务器端)中是否可行?还是有更好的方法?
答案 0 :(得分:2)
使用以太坊专用密钥对消息进行签名/加密
当然可以,但是web3并未公开加密功能。您将需要使用常规的ECDSA库来处理加密。但是,可以通过web3进行签名。
服务器使用发送的以太坊地址解密消息
无法从以太坊地址中恢复公钥。但是,可以从签名中恢复它。您需要接收服务器运行ecrecover
,然后解密文本。
检查邮件是否与“ abc”相同,如果是,则验证地址
一旦解密了有效负载,就可以轻松进行相等性检查。要验证地址,您必须通过keccak256
运行恢复的公钥,然后验证哈希的最后20个字节与您收到的地址相同。