Addresses

如何使用乙太坊地址的公鑰加密消息

  • April 1, 2019

我正在 nodejs/browser 中編寫一些程式碼。我已經使用secp256k1 -library 成功創建了乙太坊地址。我還能夠簽署和驗證消息。現在我想用生成的地址的公鑰和私鑰加密/解密一條消息。有沒有人這樣做過?我可以使用 CryptoJS 來實現我的目標嗎?

thx @Edmunx Edgar,我嘗試使用 ECIES,但由於依賴關係而無法安裝。我現在將bitcore-libbitcore-ecies一起使用。這像預期的那樣工作。

編輯:我創建了一個 npm 模組,它完全可以做這些事情,並且還有一些性能優化和教程github:eth-crypto

這是我為有相同問題的人提供的程式碼:

// run 'npm install eth-crypto --save'

const EthCrypto = require('eth-crypto');

// create identitiy with key-pairs and address
const alice = EthCrypto.createIdentity();

const secretMessage = 'My name is Satoshi Buterin';
const encrypted = await EthCrypto.encryptWithPublicKey(
   alice.publicKey, // encrypt with alice's publicKey
   secretMessage
);

const decrypted = await EthCrypto.decryptWithPrivateKey(
   alice.privateKey,
   encrypted
);

if(decrypted === secretMessage) console.log('success');

通過 CodeSandbox 執行

引用自:https://ethereum.stackexchange.com/questions/3092