Tengo la siguiente cadena de texto:
Este es un mensaje de prueba.
Usando mi clave pública de bitcoin (¿dirección de bitcoin?), ¿cómo puedo cifrar este mensaje?
¿Cómo descifraría el mensaje usando una clave privada de bitcoin?
Sí, esto es posible.
Sin embargo, quiero decir por adelantado que esto no es recomendable por varias razones:
Existe un esquema llamado ECIES que le permite aprovechar las claves de curva elíptica para crear un sistema de cifrado.
En resumen, funciona por:
El remitente:
El recipiente:
with associated public key k = kG
.. aquí debería ser mayúscula K = kG
; y AECEnc
debería serAESEnc
Si desea encriptar mensajes, debe usar una herramienta de encriptación de mensajes/archivos adecuada como PGP/GPG. La criptografía casera que usa cosas de bitcoin es propensa a tener malas propiedades de seguridad.
Asegúrese de seguir las advertencias proporcionadas anteriormente en otras respuestas, pero para que conste, esto se implementó en un proyecto llamado Bitmessage . La implementación principal está en Python en https://github.com/Bitmessage/PyBitmessage . También hay un módulo npm para node.js que implementó esto para el servidor y el navegador usando bibliotecas openssl c bajo el capó eccrypto
:
Instalar dependencias
$ npm install -g eccrypto
índice.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());
});
});
pieter wuille
Patoshi パトシ
pieter wuille
Patoshi パトシ
dave_thompson_085
jose jose