¿Cómo puedo firmar un mensaje usando mi clave privada y luego recuperar la dirección de mi cuenta de esa firma para validar mi cuenta?

Estoy usando ganache blockchain, quiero verificar que esta sea la clave de una dirección específica.

Dirección: 0x24Ff3B7cacCcd9D05353dFB0Ff5b22062A13FbE0
Clave: c28b71d6d57239ae0a575c5f5f4e7837092238c73eaaaa5e2b5e01c42714a1ed

Quiero recuperar mi dirección usando esta clave para verificar que la clave pertenece a esa dirección en particular.

La pregunta no está clara, desea hacerlo solo con web3 o también está utilizando un contrato en el proceso.
¡No puedes obtener una clave privada de una firma! La dirección pública se crea a partir de la clave privada, por lo que para encontrarla, primero debe encontrar la clave privada. Además, ¿a qué te refieres con validar tu cuenta? ¿Qué intentas lograr al final?
quiero usar mi clave privada como contraseña cuyo nombre de usuario es cuenta o clave pública

Respuestas (1)

Una manera fácil de verificar localmente si la dirección pública pertenece a la clave privada es usar nodejs y ethereumjs-wallet.

var ethjsWallet = require("ethereumjs-wallet");
var wallet = ethjsWallet.fromPrivateKey(yourPrivateKey)
var address = wallet.getAddress()

Si desea recuperar la dirección pública de una firma, puede usar algo como ethereumjs-utils. Con ecrecover, puede recuperar la clave pública y, a partir de ahí, puede convertir la clave pública en la dirección pública.

usé su implementación var bufStr="c28b71d6d57239ae0a575c5f5f4e7837092238c73eaaaa5e2b5e01c42714a1ed"; var buf = Buffer.from(bufStr, 'utf8'); consola.log(buf); var ethjsWallet = require("ethereumjs-wallet"); var billetera = ethjsWallet.fromPrivateKey(buf) var dirección = billetera.getAddress()
y obtuve el error: srajan@srajan-virtual-machine ~ $ node test.js <Buffer 63 32 38 62 37 31 64 36 64 35 37 32 33 39 61 65 30 61 35 37 35 63 35 66 35 66 34 65 37 38 33 37 30 39 32 32 33 38 63 37 33 65 61 61 61 61 35 65 32 62 ... > /home/srajan/node_modules/ethereumjs-wallet/index.js:23 throw new Error('La clave privada no satisface el requisitos de la curva (es decir, no es válido)')