Я запустил vanitygen и oclvanitygen на одном компьютере и понял после запуска, что оба exe используют один и тот же выходной файл.
В прошлом у меня был опыт, когда многие программы добавляли один и тот же файл TXT, что могло привести к повреждению.
Независимо от источника повреждения, каков наиболее полный способ проверки ключа, созданного vanitygen?
Обновлять
Я добавил тег разработчика, так как хочу провести массовую проверку. Скрипты командной строки тоже работают.
Если вы не хотите делать это онлайн, вы можете попробовать импортировать закрытый ключ в Bitcoin-Qt, а затем посмотреть, соответствует ли открытый ключ тому, который вы ожидали.
Openssl можно использовать для преобразования закрытых ключей в открытые. Следующая команда дает вам открытый ключ из известного закрытого ключа. Закрытый ключ должен быть в виде файла PEM:
$ cat private_key.pem -----НАЧАТЬ ЗАКРЫТЫЙ КЛЮЧ EC----- MHQCAQEEIMURrYd6CTHlrrV0JOxnze9ldaq3mRYMnYJ8195GldAVoAcGBSuBBAAK uQDQgAEANPTV3v+8AMXnIPaerOWziyc6tHbmbhORhbVKv1ACYuO+ohlFaV6QaOz /AGjoSXV0ZeKxq7FijsAdBzeu23Fgg== -----КОНЕЦ ЗАКРЫТОГО КЛЮЧА EC-----
Примечание: если у вас есть закрытый ключ в шестнадцатеричном формате, вам следует преобразовать его в формат PEM, используя процедуру этого ответа .
Чтобы получить открытый ключ из закрытого ключа, мы используем openssl:
$ openssl ec -pubout /dev/null -----НАЧАТЬ ПУБЛИЧНЫЙ КЛЮЧ----- MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEANPTV3v+8AMXnIPaerOWziyc6tHbmbhO RhbVKv1ACYuO+ohlFaV6QaOz/AGjoSXV0ZeKxq7FijsAdBzeu23Fgg== -----КОНЕЦ ОТКРЫТОГО КЛЮЧА-----
Чтобы преобразовать открытый ключ в биткойн-адрес, нам нужно выполнить несколько шагов :
Сначала нам нужно вычислить hash160 открытого ключа. Это можно сделать следующим образом:
$ openssl ec -pubout /dev/null | openssl ec -pubin -pubout -outform DER 2>/dev/null | хвост -c 65 | openssl dgst -sha256 -binary | openssl dgst -rmd160 -binary | ххд -р -с 80 ab085c55b735d4a811df3f55e6508634f1ce1e27
Затем hash160 должен использоваться для вычисления контрольной суммы следующим образом:
$ echo -n "ab085c55b735d4a811df3f55e6508634f1ce1e27" | xxd -p -r | openssl dgst -sha256 -binary | openssl dgst -sha256 -binary | xxd -p -c 80 | голова -с 8 7801f8dc
Хэш160 в сочетании с контрольной суммой и первым байтом «00» может быть закодирован с использованием базы 58 . Это дает нам адрес:
base58=({1..9} {A..H} {J..N} {P..Z} {a..k} {m..z}) кодироватьBase58 () { # 58 = 0x3А бк 0) { n%3A ; n/=3A }" | так | пока читал н сделать эхо -n ${base58[n]} Выполнено }
$ printf "%34s\n" "$(encodeBase58 "00$1$(контрольная сумма "$char$1")")" | sed "г/ /1/" 1GbLZiNzi7DTB4UowMuyqJw5Bh95yCbu3R
Собрав все вместе , мы можем использовать функцию publicKeyToAddress, как определено ниже. Это может быть часть сценария bash или вы можете ввести его в командной строке.
base58=({1..9} {A..H} {J..N} {P..Z} {a..k} {m..z}) кодироватьBase58 () { # 58 = 0x3А бк 0) { n%3A ; n/=3A }" | так | пока читал н сделать эхо -n ${base58[n]} Выполнено } контрольная сумма () { xxd -p -r /dev/null | хвост -c 65 | openssl dgst -sha256 -binary | openssl dgst -rmd160 -binary | ххд -р -с 80 ) }
$ openssl ec -pubout /dev/null | пабликкейтоаддресс 1GbLZiNzi7DTB4UowMuyqJw5Bh95yCbu3R
Моя лучшая рекомендация — попытаться импортировать закрытый ключ в сервис https://blockchain.info/wallet/ . Это можно найти на вкладке «Дополнительно» кошелька. Соответствующий публичный ключ будет добавлен в ваш кошелек для депозитов.
Второй вариант, который не требует наличия учетной записи, — пройти через https://www.bitaddress.org и проанализировать его с помощью вкладки личного адреса.
Библиотека pycoin Python может стать хорошей отправной точкой. У него есть утилита, которая даст вам открытый ключ для данного закрытого ключа. К сожалению, он не имеет интерфейса командной строки, подходящего для простого программного использования.