Ich versuche heutzutage, eine speichernde Bilddatei dapp mit Parity zu entwickeln. Und ich habe vor einigen Tagen eine Frage zum privaten Schlüssel gestellt. Und jemand sagte, dass jedes Konto in Ethereum einen privaten Schlüssel hat, damit ich ihn zum Verschlüsseln verwenden kann.
Aber heute versuche ich, die API zu finden, um mit dem privaten Schlüssel zu verschlüsseln. Aber ich habe gerade Verschlüsselung mit öffentlichem Schlüssel gefunden, wie dieses Web sagt: parity_encryptMessage
Wie benutzt man also den privaten Schlüssel von Ethereum? Gibt es APIs oder etwas anderes, das ich zum Verschlüsseln von Nachrichten verwenden kann? Vielen Dank~
Sie verwenden niemals private Schlüssel zum Verschlüsseln, Sie verwenden immer den öffentlichen Schlüssel zum Verschlüsseln und den privaten Schlüssel zum Entschlüsseln. Angenommen, Sie suchen den öffentlichen Schlüssel: Um ein neues Schlüsselpaar zu generieren, können Sie ethkey verwenden . Der Einfachheit halber werde ich aus Ihrem Nick eine Gehirn-Wallet generieren, damit Sie diese Parameter wiederverwenden können. Verwenden Sie dies nicht in einem öffentlichen Netzwerk.
$ ethkey generate brain YangYifei
secret: c3d09aa314f216b618c84b3592d4d6992096ad544158a511148450771882c16e
public: 8b22ba82b80cb8d9e5e6207cbd8039bdb84398aaa63e5dd0684786456cd69a7708d334c92c540ed1d1764736b51fdcb5b7b95540cc8663851a03da99862e305e
address: 0052afd86e17e4cf7163a619a4cc9724dd04506c
Um dasselbe mit der Parität zu tun und den Schlüssel zur späteren Verwendung direkt zu Ihrem Knoten hinzuzufügen, können Sie parity_newAccountFromPhrase verwenden :
$ curl --data '{"method":"parity_newAccountFromPhrase","params":["YangYifei","password1337"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545
{"jsonrpc":"2.0","result":"0x0052afd86e17e4cf7163a619a4cc9724dd04506c","id":1}
Beachten Sie jedoch, dass wir auch den öffentlichen Schlüssel von ethkey
oben benötigen. Lassen Sie mich jetzt eine Nachricht für Sie verschlüsseln, es erfordert die Nachricht in Hex (verwenden Sie einen ASCII-zu-Hex-Konverter ) und den 64-Byte-öffentlichen Schlüssel. Geben Sie dies nun an parity_encryptMessage weiter :
$ curl --data '{"method":"parity_encryptMessage","params":["0x8b22ba82b80cb8d9e5e6207cbd8039bdb84398aaa63e5dd0684786456cd69a7708d334c92c540ed1d1764736b51fdcb5b7b95540cc8663851a03da99862e305e","0x48656c6c6f2c2059616e67596966656921"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545
{"jsonrpc":"2.0","result":"0x04f0f2a86c0f172d1bc897c23af03d23e8a3d66b84eac9d201f942b11350b4e48e0abcc0dacff1fe75a6ee1b6caa2eb489126336146d38192e656a208c5f22575b94083909c157ce1e0b6182b11bc1aa845ee0f501c2c13134be2b143fe31dd1682ca0be95bdd33c0663c29b760a2ef31c3aa3d0309d79dcf55cae5ebfa50e74c706","id":1}
Das Ergebnis ist Ihre verschlüsselte Nachricht. Um es zu entschlüsseln, können Sie es mit parity_decryptMessage tun , dies funktioniert nicht nur, wenn Sie dieses Konto zuvor zu Parity hinzugefügt haben.
Da zum Entschlüsseln Ihr privater Schlüssel erforderlich ist, müssen Sie Ihr Konto entweder mit personal_unlockAccount entsperren oder die Unterzeichnerfunktion der Brieftasche verwenden.
q9f