¿Cómo puedo tomar la salida de sha256sum?
sudofox@ubuntu:~$ echo -n 'Hi guys!' | sha256sum
7542fb6685f9fd8f37d56faf62f0bb4563684a51539e4b26f0840db361e0027c -
y convertirlo en una clave privada codificada en Base58Check?
Necesito poder hacer esto con una lista de claves SHA256. ¿Hay algún script que pueda descargar, o debo pasar algunas semanas haciéndolo solo para poder hacer mis direcciones temporales?
En respuesta al primer comentario: No, debo ingresar una cadena, como "fluttershy", por ejemplo, en sha256sum y luego debo codificar la salida de sha256sum en una clave privada base58check.
string -->sha256sum --> algún proceso automático, que es el propósito de esta pregunta --> clave privada de bitcoin.
Actualización: para cualquiera que quiera usar las herramientas Bitcoin Bash de Grondilu: debe obtener el archivo bitcoin.sh después de extraerlo en su directorio para usar las funciones.
source ./bitcoin.sh
Actualización 2 (agosto de 2017): secuencia de comandos reescrita para pasar del paso 1 a WIF de una sola vez. Simplemente puede agregar la declaración de base58 y las funciones encodeBase58 de bitcoin.sh si desea omitir el resto de la biblioteca.
#!/bin/bash
#Tool to convert bitcoin privkeys into WIF keys
# by sudofox
source ./bitcoin.sh
KEY=$1 # first arg
# add 0x80 to beginning
EXTENDEDKEY=$(echo 80$KEY)
FIRSTHASH=$(echo -n "$EXTENDEDKEY" |xxd -r -p |sha256sum -b|awk '{print $1}')
SECONDHASH=$(echo -n "$FIRSTHASH" |xxd -r -p |sha256sum -b|awk '{print $1}')
CHECKSUM=$(echo $SECONDHASH|cut -c1-8)
FINAL=$(encodeBase58 $EXTENDEDKEY$CHECKSUM)
echo $FINAL
el uso seria
./sha256_to_privkey.sh clave
donde en mi ejemplo (ver la respuesta de Stephen Gornick), la clave sería
807542FB6685F9FD8F37D56FAF62F0BB4563684A51539E4B26F0840DB361E0027CCD5C4A8E
Haga lo mismo para las diversas funciones, modificando según sea necesario. Espero que esto ayude a cualquiera que tenga dificultades para usar las herramientas.
Lo que está solicitando se describe como calcular el formato de importación de billetera para esa clave privada:
Usando tu ejemplo:
1.) Tome una clave privada (a continuación se muestra la representación HEX del valor binario)
7542FB6685F9FD8F37D56FAF62F0BB4563684A51539E4B26F0840DB361E0027C
2.) Agregue un byte 0x80 delante de él
807542FB6685F9FD8F37D56FAF62F0BB4563684A51539E4B26F0840DB361E0027C
3.) Realizar hash SHA-256 en la clave extendida
$ echo -n '807542FB6685F9FD8F37D56FAF62F0BB4563684A51539E4B26F0840DB361E0027C' | xxd -r -p | sha256sum -b
7DE4708EB23AB611371BB778FC0C8BDE80394AB2D8704D7129FB5771E2F1730D
4.) Realizar el hash SHA-256 en el resultado del hash SHA-256
$ echo -n '7DE4708EB23AB611371BB778FC0C8BDE80394AB2D8704D7129FB5771E2F1730D' | xxd -r -p | sha256sum -b
CD5C4A8E03DFBB0E3AA021C2D74A9EAA43CE4C9CB1B20FC88729A7A5834141CA
5.) Tome los primeros 4 bytes del segundo hash SHA-256, esta es la suma de verificación
CD5C4A8E
6.) Agregue los 4 bytes de suma de verificación del punto 5 al final de la clave extendida del punto 2
807542FB6685F9FD8F37D56FAF62F0BB4563684A51539E4B26F0840DB361E0027CCD5C4A8E
7.) Convierta el resultado de una cadena de bytes en Base58 para obtener el formato Base58Check. Esto también se conoce como el formato de importación de billetera.
(Convertido del punto 6 a base58 usando https://bitcointools.appspot.com , o usando encodeBase58 desde https://github.com/grondilu/bitcoin-bash-tools )
5JhvsapkHeHjy2FiUQYwXh1d74evuMd3rGcKGnifCdFR5G8e6nH
7542FB6685F9FD8F37D56FAF62F0BB4563684A51539E4B26F0840DB361E0027C
y la salida para "enconde from hex" fue 8tjwWnNgm3DrBEwCsPqbSAPkCspRRmA8ftHjQTycL3gw
, no "5JhvsapkHeHjy2FiUQYwXh1d74evuMd3rGcKGnifCdFR5G8e6nH"Si no desea calcular la clave manualmente, hay una útil utilidad de línea de comandos para esto llamada bitcoin-tool
:
$ ./bitcoin-tool \
--input-file <(echo -n 'Hi guys!' | openssl dgst -sha256 -binary) \
--input-format raw \
--input-type private-key \
--network bitcoin \
--output-type private-key-wif \
--output-format base58check \
--public-key-compression uncompressed
5JhvsapkHeHjy2FiUQYwXh1d74evuMd3rGcKGnifCdFR5G8e6nH
Pasar --output-type all
produce resultados aún más interesantes:
address.hex:00a25b865343d3fcc08994005f496265b48349e363
address.base58:13GC5PkewvCycNNVVUuwJEnxPr6Lz
address.base58check:1FoU7KqP2xnWBo7sULZn5EynWdbYVVBXaG
public-key-ripemd160.hex:a25b865343d3fcc08994005f496265b48349e363
public-key-ripemd160.base58:3GC5PkewvCycNNVVUuwJEnxPr6Lz
public-key-ripemd160.base58check:FoU7KqP2xnWBo7sULZn5EynWdbYSDL49B
public-key-sha256.hex:12317a311bea88a372138319d2ab671ef9fed4ada741d91f368a4c6c7b3c146a
public-key-sha256.base58:2E26bn7S3ByBj1KWn8zjTVzAYVRD5osYmo1HAP5UfAPB
public-key-sha256.base58check:91iv7C9DcPrrReTtBJsxMTRFHKm2yJwsYkz1mbDk51ePCC54y
public-key.hex:048c6d8595550811bef5592e56f33f306cd07561b3f65ab10d9188fc0aa89aba7a564aa08b528475baadf0a0035633894248269f266c3c71b67e574dd368275c1c
public-key.base58:QHH5Zy6u7FsTPjLdMLp4yVdL6cFYo2yh8XoptynaU8HEqheCNEwJiVCfCpm6BBBuCXVB2ESny8qAAEQN3Efc1kq1
public-key.base58check:3dLjoxm8unYpP6iKX95T5YWXVA7xbVhmyJrnKoWYjeTFWqKTmgVoUSyjXd1D5KWNnzYgcGw5fn8WefUjnTDnXBVrTtkTGE
private-key-wif.hex:807542fb6685f9fd8f37d56faf62f0bb4563684a51539e4b26f0840db361e0027c
private-key-wif.base58:fAHHP3kbUP5cDBoAfwrZYCR4WC6BnnQCEaQPMaNdrRyCF
private-key-wif.base58check:5JhvsapkHeHjy2FiUQYwXh1d74evuMd3rGcKGnifCdFR5G8e6nH
private-key.hex:7542fb6685f9fd8f37d56faf62f0bb4563684a51539e4b26f0840db361e0027c
private-key.base58:8tjwWnNgm3DrBEwCsPqbSAPkCspRRmA8ftHjQTycL3gw
private-key.base58check:teHuNfDBiki1sSSD73SeGVtTq1hDky8TYY3cfuxkPmuftixzQ
Nick ODell
austin burk
Nick ODell
austin burk