Вернуться   Биткоин Форум > - Помощь начинающим
29 мая 2012, 7:23:42 PM   # 1
 
 
Сообщений: 55
Цитировать по имени
цитировать ответ
по умолчанию Re: Простой скрипт для генерации адреса из закрытого ключа

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
ОК, так что я хотел бы иметь небольшой скрипт, который можно использовать для создания нового (в автономном режиме) Bitcoin адресов и быть уверенным, что информация не хранится где-нибудь или отправить кому-либо, но я не мог найти ничего, что делает, что это также просто достаточно того, что я могу читать исходный код и проверить его самостоятельно.

во всяком случае я в конечном итоге написание этого питона 2.5 скрипта (а затем решил загрузить его здесь, в случае, если это полезно кому-либо еще)

Код:
импорт ECDSA

secp256k1curve = ecdsa.ellipticcurve.CurveFp (115792089237316195423570985008687907853269984665640564039457584007908834671663,0,7)
secp256k1point = ecdsa.ellipticcurve.Point (secp256k1curve, 0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798,0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8,0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141)
secp256k1 = ecdsa.curves.Curve ( 'secp256k1', secp256k1curve, secp256k1point, (1,3,132,0,10))

# --------------------------------------

импорт binascii, hashlib

Защиту Адди (рк):
 ПКО = ecdsa.SigningKey.from_secret_exponent (рк, secp256k1)
 Публичный = binascii.hexlify (pko.get_verifying_key (). to_string ())
 pubkey2 = hashlib.sha256 (binascii.unhexlify ( '04' + Публичных)). hexdigest ()
 pubkey3 = hashlib.new ( 'ripemd160', binascii.unhexlify (pubkey2)). hexdigest ()
 pubkey4 = hashlib.sha256 (binascii.unhexlify ( '00' + pubkey3)). hexdigest ()
 pubkey5 = hashlib.sha256 (binascii.unhexlify (pubkey4)). hexdigest ()
 pubkey6 = pubkey3 + pubkey5 [8]
 pubnum = INT (pubkey6,16)
 pubnumlist = []
 в то время как pubnum = 0: pubnumlist.append (pubnum% 58); pubnum / = 58
 адрес = «»
 для л в [ «123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz» [х] для й в pubnumlist]:
  адрес = L + адрес
 возвращение «1» + адрес

Код:
печать Адди (0x18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725)
печать Адди (интермедиат (hashlib.sha256 ( «что-то маленькое и легко запомнить, но трудно угадать»). hexdigest (), 16))
печать Адди (интермедиат (hashlib.sha256 (файл ( 'hiddeninplainsight.jpg', 'гь +'). чтения ()). hexdigest (), 16))

Код использует библиотеку ECDSA, которую можно найти Вот.
Функция принимает адрес закрытый ключ и возвращает соответствующий адрес Bitcoin.

Последние две строки имеют некоторые практические применения функции адреса. Так как функция sha256 хэша возвращает длинное значение 256 битного, он может быть использован для создания закрытого ключа. Это полезно, если вы хотите, чтобы иметь адрес Bitcoin и закрытый ключ, который вы можете помнить, не имея записать его в любом месте, или если вы хотите использовать файл, который вы имеете на вашем компьютере в качестве ключа. Если вы хотите потратить монеты, которые у вас есть в этом адресе, все, что вам нужно сделать, это использовать ту же функцию, чтобы сгенерировать закрытый ключ и адрес.

ПРЕДУПРЕЖДЕНИЕ № 1: используя файл, который вы имеете на вашем компьютере или короткое предложение, чтобы сгенерировать закрытый ключ / пара адресов делает его намного проще для атакующего угадать секретный ключ. Вместо того, чтобы попытаться 2 ^ 256 возможностей, у них есть только попробовать файлы на вашем компьютере, по одному или вашей любимой книги / игры / свой день рождения ...

ПРЕДУПРЕЖДЕНИЕ # 2: Я только что сделал этот сценарий сегодня, и я довольно новыми для Bitcoin. Используйте на свой риск !

woooo пять постов я отсюда
Jeromes сейчас офлайн Пожаловаться на Jeromes   Ответить с цитированием Мультицитирование Сообщения От Jeromes БЫСТРЫЙ ответ на сообщение Jeromes


Как заработать Биткоины?
Без вложений. Не майнинг.


30 мая 2012, 12:42:40 AM   # 2
 
 
Сообщений: 17
Цитировать по имени
цитировать ответ
по умолчанию Re: Простой скрипт для генерации адреса из закрытого ключа

Получил 1806 Биткоинов
Реальная история.





Классная идея. 
Панама Джек сейчас офлайн Пожаловаться на Панамский Джек   Ответить с цитированием Мультицитирование сообщения от Panama Jack Быстрый ответ на сообщение Panama Jack

30 мая 2012, 12:47:46 AM   # 3
 
 
Сообщения: 2352
Цитировать по имени
цитировать ответ
по умолчанию Re: Простой скрипт для генерации адреса из закрытого ключа

ПРЕДУПРЕЖДЕНИЕ # 2: Я только что сделал этот сценарий сегодня, и я довольно новыми для Bitcoin. Используйте на свой риск !

Просто хотел убедиться, что часть выделяется ..., так как речь идет о деньгах.
Стивен Gornick сейчас офлайн Пожаловаться на Stephen Gornick   Ответить с цитированием Мультицитирование сообщения от Stephen Gornick Быстрый ответ на сообщение Стивен Gornick

7 сентября 2012, 2:25:46 PM   # 4
 
 
Сообщения: 1176
Цитировать по имени
цитировать ответ
по умолчанию Re: Простой скрипт для генерации адреса из закрытого ключа

Ли кто-нибудь подтвердить, работает ли это или нет? Это очень хорошая идея.

Есть ли код-вика для Bitcoin, где люди могут вставить свои фрагменты кода?

-crazy_rabbit
crazy_rabbit сейчас офлайн Пожаловаться на crazy_rabbit   Ответить с цитированием Мультицитирование сообщения от crazy_rabbit Быстрый ответ на сообщение crazy_rabbit

18 сентября 2012, 7:24:05 AM   # 5
 
 
Сообщений: 55
Цитировать по имени
цитировать ответ
по умолчанию Re: Простой скрипт для генерации адреса из закрытого ключа

н.п.

Код:
импорт hashlib, binascii

т = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'

Защиту numtowif (numpriv):
 шаг1 = '80' + гекс (numpriv) [2:]. полоса ( 'L') zfill (64).
 step2 = hashlib.sha256 (binascii.unhexlify (шаг1)). hexdigest ()
 step3 = hashlib.sha256 (binascii.unhexlify (step2)). hexdigest ()
 step4 = INT (шаг1 + step3 [8], 16)
 Возвращение '' .join ([т [step4 / (58 ** л)% 58] для л в диапазоне (100)]) [:: - 1] .lstrip ( '1')

Защиту wiftonum (wifpriv):
 Обратно сумма ([t.index (wifpriv [:: - 1] [л]) * (58 ** л) для л в диапазоне (LEN (wifpriv))]) / (2 ** 32)% (2 ** 256)

Защиту validwif (wifpriv):
 вернуться numtowif (wiftonum (wifpriv)) == wifpriv

печать numtowif (0x0C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D)
печать шестигранный (wiftonum ( '5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ'))
печать validwif ( '') 5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ
печать validwif ( '') 5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTK

я использовал это в качестве эталона для алгоритмов. Этот код также в Python 2.5.
Опять же, вы можете использовать этот код в любом случае вы хотите, но использовать на свой страх и риск!
Jeromes сейчас офлайн Пожаловаться на Jeromes   Ответить с цитированием Мультицитирование Сообщения От Jeromes БЫСТРЫЙ ответ на сообщение Jeromes

19 сентября 2012, 10:04:44 PM   # 6
 
 
Сообщения: 1008
Цитировать по имени
цитировать ответ
по умолчанию Re: Простой скрипт для генерации адреса из закрытого ключа

н.п.

Код:
импорт hashlib, binascii

т = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'

Защиту numtowif (numpriv):
 шаг1 = '80' + гекс (numpriv) [2:]. полоса ( 'L') zfill (64).
 step2 = hashlib.sha256 (binascii.unhexlify (шаг1)). hexdigest ()
 step3 = hashlib.sha256 (binascii.unhexlify (step2)). hexdigest ()
 step4 = INT (шаг1 + step3 [8], 16)
 Возвращение '' .join ([т [step4 / (58 ** л)% 58] для л в диапазоне (100)]) [:: - 1] .lstrip ( '1')

Защиту wiftonum (wifpriv):
 Обратно сумма ([t.index (wifpriv [:: - 1] [л]) * (58 ** л) для л в диапазоне (LEN (wifpriv))]) / (2 ** 32)% (2 ** 256)

Защиту validwif (wifpriv):
 вернуться numtowif (wiftonum (wifpriv)) == wifpriv

печать numtowif (0x0C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D)
печать шестигранный (wiftonum ( '5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ'))
печать validwif ( '') 5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ
печать validwif ( '') 5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTK

я использовал это в качестве эталона для алгоритмов. Этот код также в Python 2.5.
Опять же, вы можете использовать этот код в любом случае вы хотите, но использовать на свой страх и риск!

Очень приятно, еще раз!
flatfly сейчас офлайн Пожаловаться на flatfly   Ответить с цитированием Мультицитирование сообщения от flatfly Быстрый ответ на сообщение flatfly

20 сентября 2012, 7:34:45 AM   # 7
 
 
Сообщений: 70
Цитировать по имени
цитировать ответ
по умолчанию Re: Простой скрипт для генерации адреса из закрытого ключа

Вставить его в качестве общественной сущности на GitHub & поделиться ссылкой - он должен затем быть видимым дэвов обычно ищут с помощью Google / GitHub & через форум.

Хорошая работа!
laSeek сейчас офлайн Пожаловаться на laSeek   Ответить с цитированием Мультицитирование сообщения от laSeek Быстрый ответ на сообщение laSeek

22 ноября 2013, 12:42:09 AM   # 8
 
 
Сообщения: 8
Цитировать по имени
цитировать ответ
по умолчанию Re: Простой скрипт для генерации адреса из закрытого ключа

Это очень полезно, спасибо! Я нахожусь в процессе использования этого восстановить некоторые монеты.
moneygames сейчас офлайн Пожаловаться на moneygames   Ответить с цитированием Мультицитирование сообщения от moneygames Быстрый ответ на сообщение moneygames

8 декабря 2013, 3:01:09 PM   # 9
 
 
Сообщения: 107
Цитировать по имени
цитировать ответ
по умолчанию Re: Простой скрипт для генерации адреса из закрытого ключа

Несмотря на то, что это старая нить, я чувствовал, что было бы целесообразно, чтобы дать предупреждение о вышеприведенном сценарии, так как он имеет ошибку, которая производит неправильные результаты для некоторых клавиш.

Я буду размещать больше информации и исправления, когда у меня есть немного свободного времени.
В то же время, вы, ребята, можете попробовать найти его в качестве упражнения ...
Некоторые технические знания Bitcoin требуется.
JompinDox сейчас офлайн Пожаловаться на JompinDox   Ответить с цитированием Мультицитирование сообщения от JompinDox Быстрый ответ на сообщение JompinDox

6 марта 2014, 9:50:26 PM   # 10
 
 
Сообщения: 178
Цитировать по имени
цитировать ответ
по умолчанию Re: Простой скрипт для генерации адреса из закрытого ключа

Чрезвычайно полезно.

Для того, чтобы последовать совету JompinDox, всего добавить

Код:
т = 0
в то время как pubkey6 [0 + M: 2 + т] == '00':
  pubnumlist.append (0);
  т = т + 2;

до

Код:
адрес = «»
RedGolpe сейчас офлайн Пожаловаться на RedGolpe   Ответить с цитированием Мультицитирование сообщения от RedGolpe Быстрый ответ на сообщение RedGolpe

27 июня 2014, 4:35:29 PM   # 11
 
 
Сообщения: 2282
Цитировать по имени
цитировать ответ
по умолчанию Re: Простой скрипт для генерации адреса из закрытого ключа

Это, кажется, немного устарел, потому что он использует старую версию питона-ECDSA (до secp521r1 реализации). Я постараюсь, чтобы получить обновленный и упрощенный вариант.

Спасибо!
Stemby сейчас офлайн Пожаловаться на Stemby   Ответить с цитированием Мультицитирование сообщения от Stemby Быстрый ответ на сообщение Stemby

7 июля 2015, 8:28:14 AM   # 12
 
 
Сообщений: 16
Цитировать по имени
цитировать ответ
по умолчанию Re: Простой скрипт для генерации адреса из закрытого ключа

Как запустить этот скрипт в питоне ?? есть ли необходимость дополнительного сценария ?? Помоги мне...
tpksarathy сейчас офлайн Пожаловаться на tpksarathy   Ответить с цитированием Мультицитирование сообщения от tpksarathy Быстрый ответ на сообщение tpksarathy



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW