Я пишу код в nodejs/browser. Я успешно создал ethereum-адреса с помощью библиотеки secp256k1 . Я также мог подписывать и проверять сообщения. Теперь я хочу зашифровать/расшифровать сообщение с помощью открытого и закрытого ключа сгенерированных адресов. Кто-нибудь делал это раньше? Могу ли я использовать CryptoJS для достижения своей цели?
спасибо @Edmunx Эдгар, я пытался использовать ECIES, но его не удалось установить из-за подзависимости. Теперь я использовал bitcore-lib вместе с bitcore-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');
Предполагая, что у вас есть открытый ключ человека, которому вы хотите отправить сообщение (если он уже подписал транзакцию, вы можете восстановить ее по подписи), должна быть возможность зашифровать и расшифровать с помощью ECIES. По-видимому, для этого есть библиотека JavaScript, я предполагаю, что вы можете использовать ее в браузере: https://bitcointalk.org/index.php?topic=627927.0 .
В любом случае я понятия не имею, достаточно ли хороши эти библиотеки для безопасного использования.
Другой подход заключается в создании отдельной пары ключей, предназначенной для шифрования, а затем использовании ключа Ethereum для подписи открытого ключа и отправки его другой стороне.
Мэлоун
var pubKey = new bitcore.PublicKey.fromPrivateKey(privKey);
теперь вы можете шифровать и расшифровывать сообщения. Любые предложения о том, как я могу использовать эту библиотеку без обходного пути? Спасибо!публичный ключ
Мэлоун
bitcore-ecies
о проблемах с производительностью прямо сейчас. Спасибо еще раз.Виксон
Сделано во сне
ПАШ
ПАШ
публичный ключ
Ксавьер59
eth_decrypt
( docs .metamask.io/guide/rpc-api.html#other-rpc-methods )