У меня есть следующая текстовая строка:
Это тестовое сообщение.
Используя мой открытый биткойн-ключ (биткойн-адрес?), как я могу зашифровать это сообщение?
Как мне расшифровать сообщение с помощью закрытого ключа биткойн?
Да, это возможно.
Однако я хочу заранее заявить, что это не рекомендуется по нескольким причинам:
Существует схема под названием ECIES , которая позволяет использовать ключи эллиптической кривой для создания системы шифрования.
Короче говоря, это работает:
Отправитель:
Получатель:
with associated public key k = kG
.. здесь должна быть заглавная K = kG
; и AECEnc
должно бытьAESEnc
Если вы хотите зашифровать сообщения, вам следует использовать подходящий инструмент шифрования сообщений/файлов, такой как PGP/GPG. Самодельная криптография с использованием биткойнов имеет плохие свойства безопасности.
Обязательно следуйте предупреждениям, данным ранее в других ответах, но для записи это было реализовано в проекте под названием Bitmessage . Основная реализация находится на Python по адресу https://github.com/Bitmessage/PyBitmessage . Существует также модуль npm для node.js, который реализовал это для сервера и браузера, используя библиотеки openssl c под капотом eccrypto
:
Установить зависимости
$ npm install -g eccrypto
index.js
var crypto = require("crypto");
var eccrypto = require("eccrypto");
var privateKeyA = crypto.randomBytes(32);
var publicKeyA = eccrypto.getPublic(privateKeyA);
var privateKeyB = crypto.randomBytes(32);
var publicKeyB = eccrypto.getPublic(privateKeyB);
// Encrypting the message for B.
eccrypto.encrypt(publicKeyB, Buffer("msg to b")).then(function(encrypted) {
// B decrypting the message.
eccrypto.decrypt(privateKeyB, encrypted).then(function(plaintext) {
console.log("Message to part B:", plaintext.toString());
});
});
// Encrypting the message for A.
eccrypto.encrypt(publicKeyA, Buffer("msg to a")).then(function(encrypted) {
// A decrypting the message.
eccrypto.decrypt(privateKeyA, encrypted).then(function(plaintext) {
console.log("Message to part A:", plaintext.toString());
});
});
Питер Уилле
Патоши パトシ
Питер Уилле
Патоши パトシ
дэйв_томпсон_085
Джикку Хосе