Encrypt and Decrypt message using Ethereum keys.
- Let's say,
Alice
wants to send secured message toBob
. This is How it will work:
Alice
encrypt message using his privatekey and Bob's publickey.Alice
sends encrypted message toBob
.Bob
decrypt message using his privatekey and Alice publickey.
- Only
Bob
can read the message Bob
can be sure that the message really comes fromAlice
npm install ethereum-rsa --save
const EthRSA = require('ethereum-rsa');
This function will return the uncompressed publicKey from privateKey.
let publicKey = EthRSA.publicKeyByPrivateKey("4a2e11580d318f86079775229a377194d3629bb8448dfbfb8352d0cc4fc3f008");
console.log(publicKey);
04de9432ee891cbc70ff41acbcb253d06317703e943de2f2cb7aaae71dfa91ba0d8c4ed05dc7a6b804134b9225a539699bedb222e73900ebeea3bbf4161045f007
Encrypt the message using sender's private key and recipient public key.
- message: Message in plain text.
- senderPrivateKey: Private key of the sender.
- recipientPublicKey: Public key of the recipient. Public key should be in uncompressed format & 04 attached at left.
EthRSA.encryptMessage(message, senderPrivateKey, recipientPublicKey);
EthRSA.encryptMessage(
"Hey There!",
"4a2e11580d318f86079775229a377194d3629bb8448dfbfb8352d0cc4fc3f008",
"044f93e10b7a052260c4686dbfca7ac09d5d830c01bfe544b92438f65ebf961d64acf9992fd70565920f303bca209f7a4a96f10510a2ed0922485b4758cc2b180a"
)
.then(console.log);
br+Tol1WJkejU+rvUCm7dGm2IeOLF/SiMOi3i3Ho3G4=
Decrypt the message using sender's public key and recipient private key. Here public key should be in uncompressed format & with 04 attached left side.
- cipherText: Encrypted message.
- recipientPrivateKey: Private key of the recipient.
- senderPublicKey: Public key of the sender. Public key should be in uncompressed format & 04 attached at left.
EthRSA.decryptMessage(cipherText, recipientPrivateKey, senderPublicKey);
EthRSA.decryptMessage(
"br+Tol1WJkejU+rvUCm7dGm2IeOLF/SiMOi3i3Ho3G4=",
"e4a2d1f1568c1eb7ffacdbaea7607d9e768fd3d3d97ec5119ccf5d8bb6c0e613",
"04de9432ee891cbc70ff41acbcb253d06317703e943de2f2cb7aaae71dfa91ba0d8c4ed05dc7a6b804134b9225a539699bedb222e73900ebeea3bbf4161045f007"
)
.then(console.log);
Hey There!
npm test
- Issues & Pull requests are welcome! Fork, branch, and submit PR.