13 февраля 2013, 11:40:49 AM   # 1
 
 
Сообщения: 934
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin Морзе

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Bitcoin адреса позволяют:
0 .. 9, А ..Z, A .. г, но без четырех символов 0, О, я и л

Я хотел, чтобы закодировать любой адрес Bitcoin, используя только цифры.
Поскольку нули не допускаются мы будем использовать его для кодирования букв, как это,

предшествующие нули для письма, как это:
01-А
001-а (двойной ноль, один)
02-Б
002-б
03-C
003-с
04-D
004-д
05-Е
005-е
06-F
006-е
07-G
007-г
08-Н
008-ч
009-я
0001-J (тройной ноль, один)
00001-J (в четыре раза ноль, один)
0002-К
00002-K
0003-L
0004-М
00004-м
0005-N
00005-н
00006-о
0007-Р
00007-р
0008-Q
00008-кв
0009-Р
00009-р
000001-С (в пять раз ноль, один)
0000001-ы (шестикратное ноль, один)
000002-Т
0000002-т
000003-U
0000003-у
000004-V
0000004-v
000005-W
0000005-W
000006-X
0000006-х
000007-Y
0000007-й
000008-Z,
0000008-г

Таким образом, лучший сценарий вы бы кодировать Bitcoin адрес с 34 цифрами

и в худшем случае с 238 цифр.
С этой кодировкой Lengh будет очень изменчива.

Позвольте мне попытаться закодировать один адрес с этим «Bitcoin Морзе», как я это называю.

Bitcoin Адрес: 14jsRJx8HnKq9jyqfBQKgvvnFy3rNCbc3G
В Bitcoin Морзе: 1400001000000100090001000000680800005000200008900001000000700008006020008000200 70000004000000400005060000007300009000503002003307

34 буквенно-цифровых символов в 129 число цифр.
Не так уж плохо, это ?! А может быть, тщеславие адрес мог бы оптимизировать свой адрес, чтобы иметь немного длины, как он получает ...
remotemass сейчас офлайн Пожаловаться на remotemass   Ответить с цитированием Мультицитирование сообщения от remotemass Быстрый ответ на сообщение remotemass


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


13 февраля 2013, 11:55:44 AM   # 2
 
 
Сообщения: 266
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin Морзе

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





Более математически звук способ преобразовать Bitcoin адрес в строку цифр будет принимать Bitcoin-адрес, который является Base-58 номер, и просто преобразовать его в десятичную. Это было бы тривиально программно.

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

13 февраля 2013, 1:59:22 PM   # 3
 
 
Сообщений: 50
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin Морзе

Edit2: Этот пример является ошибочным. для лучшего примера см мой пост ниже.

Ниже приведен пример кодирования базового-10.

Bitcoin адрес: msTuyWdqBoWFDhttLrqagzqi8n5KWaD3Pv
основание 16 (шестнадцатеричное) кодирования: 830e533c2b8a12a1a06b56f08578645b72e324bb
Основание 10 кодирования: 975382009484802281201214682924674052502252791847

Вот сценарий Perl я использовал для расчета кодирования base10 из необработанных данных Bitcoin:

https://gist.github.com/ciphermonk/4944777

Я не делал никаких проверки, если это правильно, но, по крайней мере, дух есть

Что касается классической теории информации идет, это наименьшее сжатие base10 вы можете получить.

Ура!

Изменить: В этом примере выше, является неправильным: Необработанные данные я использовал (из сырого сделки) не содержит Bitcoin адрес версии и не содержит контрольную сумму. Таким образом, фактическая база 10 кодирования будет иметь еще несколько цифр К сожалению об этом. Если кто-то хочет иметь обновленный скрипт, дайте мне знать, что я могу работать на нем.
ciphermonk сейчас офлайн Пожаловаться на ciphermonk   Ответить с цитированием Мультицитирование сообщения от ciphermonk Быстрый ответ на сообщение ciphermonk

13 февраля 2013, 2:48:29 PM   # 4
 
 
Сообщения: 1848
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin Морзе

Вот сценарий Perl я использовал для расчета кодирования base10 из необработанных данных Bitcoin:

https://gist.github.com/ciphermonk/4944777

Почему @ b10 и b10%? $ B10 [п] == $ b10 {п} == п так что они бесполезны (они имеют смысл для других корешков, но не для <= 10). Кроме того, упаковка / распаковка является излишней, и результат должен быть обратным:

Код:
использовать BIGINT;

к югу encode_base10 {
    мой $ BIGINT = шестигранной сдвиг;
    мой $ результат = '';
 
    в то время как ($ BIGINT > 0) {
        мой ($ кво, $ бэр) = $ bigint->bdiv (10);
        $ Результат = $ бэр.
    }
 
    Скалярное обратный результат $;
}
 
печать encode_base10 '830e533c2b8a12a1a06b56f08578645b72e324bb';

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

13 февраля 2013, 3:08:41 PM   # 5
 
 
Сообщения: 812
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin Морзе

Цикл в то время как можно записать в одну строку, сохраняя при этом полную читаемость, но я оставлю это в сторону.

пожалуйста скажите полный PERL новичку (мне), как бы вы написать его
payb.tc сейчас офлайн Пожаловаться на payb.tc   Ответить с цитированием Мультицитирование сообщения от payb.tc Быстрый ответ на сообщение payb.tc

13 февраля 2013, 3:34:45 PM   # 6
 
 
Сообщений: 50
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin Морзе

Вот сценарий Perl я использовал для расчета кодирования base10 из необработанных данных Bitcoin:

https://gist.github.com/ciphermonk/4944777

Почему @ b10 и b10%? $ B10 [п] == $ b10 {п} == п так что они бесполезны (они имеют смысл для других корешков, но не для <= 10). Кроме того, упаковка / распаковка является излишней, и результат должен быть обратным:

Код:
использовать BIGINT;

к югу encode_base10 {
    мой $ BIGINT = шестигранной сдвиг;
    мой $ результат = '';
 
    в то время как ($ BIGINT > 0) {
        мой ($ кво, $ бэр) = $ bigint->bdiv (10);
        $ Результат = $ бэр.
    }
 
    Скалярное обратный результат $;
}
 
печать encode_base10 '830e533c2b8a12a1a06b56f08578645b72e324bb';

Цикл в то время как можно записать в одну строку, сохраняя при этом полную читаемость, но я оставлю это в сторону.

Вы правы, это совершенно не имеет значения, чтобы написать это. Дело в том, что $ BIGINT уже имеет представление base10, так что нет смысла идти через цикл. Я просто хотел, чтобы продемонстрировать, как закодировать произвольные данные в представление Basex.

Спасибо за улучшение кода.
ciphermonk сейчас офлайн Пожаловаться на ciphermonk   Ответить с цитированием Мультицитирование сообщения от ciphermonk Быстрый ответ на сообщение ciphermonk

13 февраля 2013, 5:32:52 PM   # 7
 
 
Сообщения: 1848
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin Морзе

Дело в том, что $ BIGINT уже имеет представление base10, так что нет смысла идти через цикл.

Doh, я совершенно упускается из виду, что.

Е&G:. $ Результат = ($ bigint->bdiv (10)) [1] в то время как $ BIGINT;
dserrano5 сейчас офлайн Пожаловаться на dserrano5   Ответить с цитированием Мультицитирование сообщения от dserrano5 Быстрый ответ на сообщение dserrano5

14 февраля 2013, 7:08:59 AM   # 8
 
 
Сообщений: 50
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin Морзе

$ Результат. = ($ Bigint->bdiv (10)) [1] в то время как $ BIGINT;

Это круто. Мне это нравится, за исключением того, что () [1] несколько запутанным. Кто-то читает код должен открыть документацию BigInt, чтобы понять поведение. Это компромисс между краткостью и читаемостью. Оба вида могут быть защищены

Для полноты картины, я решил запустить пример адрес OP к base10: 14jsRJx8HnKq9jyqfBQKgvvnFy3rNCbc3G

Если запустить это через decode_base58, Вы получаете следующую строку (шестигранный представление):

002903ef7df972ef94adeda53f0ccd24699de872041e4732cf

Первые байты (00) представляет собой Bitcoin адрес строки версии. На производственной blockchain, это 0x00 и на testnet blockchain, это 0x6F (Или 111 в десятичном представлении). Заметим, что это производство адрес.

Последние 4 байта (1e4732cf) контрольная сумма по сравнению с предыдущими данными. Если вы сделали опечатку во время ручного ввода адреса Bitcoin, вы будете создавать недопустимую контрольную сумму и Bitcoin клиент откажется отправить деньги на него. Таким образом, мы хотим, чтобы преобразовать это шестнадцатеричное представление в десятичное представление. Оказывается, очень просто в Perl:

Код:
использовать BIGINT;
печать шестигранной «002903ef7df972ef94adeda53f0ccd24699de872041e4732cf»;

Результат:

1005694022349920422888116886380815406116626226984035758799

Я считаю, что правильный результат прямо сейчас

Ура!

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

14 февраля 2013, 8:07:07 AM   # 9
 
 
Сообщения: 266
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin Морзе

Похоже, о правильной длине.

34 Base-58 цифр должны преобразовать около 60 десятичных цифр, так как 34 * Ln (58) / п (10) = 59,9.
Поскольку Bitcoin адрес начинается с ведущими нулями (1 в Base-58, где ноль был устранен из цифр бассейна), ваш 59-значный номер, кажется, в нужном диапазоне.
jerfelix сейчас офлайн Пожаловаться на jerfelix   Ответить с цитированием Мультицитирование сообщения от jerfelix Быстрый ответ на сообщение jerfelix

14 февраля 2013, 8:37:17 AM   # 10
 
 
Сообщения: 1848
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin Морзе

Это круто. Мне это нравится, за исключением того, что () [1] несколько запутанным. Кто-то читает код должен открыть документацию BigInt, чтобы понять поведение. Это компромисс между краткостью и читаемостью. Оба вида могут быть защищены

Это не BigInt связанные, только стандартный синтаксис для доступа ко второму элементу в списке. Другой пример:

Код:
дата $; Perl -le «печать присоединиться " ", (LocalTime) [2,1,0]
Чт 14 февраля 9:36:19 CET 2013
9 36 19

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

14 февраля 2013, 11:26:33 AM   # 11
 
 
Сообщений: 50
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin Морзе

$ Результат. = ($ Bigint->bdiv (10)) [1] в то время как $ BIGINT;
Это круто. Мне это нравится, за исключением того, что () [1] несколько запутанным. Кто-то читает код должен открыть документацию BigInt, чтобы понять поведение. Это компромисс между краткостью и читаемостью. Оба вида могут быть защищены

Мне очень жаль, может быть, я не выразить себя правильно. То, что я имел в виду, что кто-то читает код может не знать о том, что второй элемент в списке является остаток от деления. Либо он знает, или он должен посмотреть документацию BIGINT, чтобы увидеть, что это второй элемент возвращается делением. Я, конечно, не знал бы это, если я не смотрел его.

Записав его, как это дает читателю ключ к пониманию того, что возвращает функция:

Код:
мой ($ кво, $ бэр) = $ bigint->bdiv (10);

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

Я согласен, однако, что мы несколько не по теме
ciphermonk сейчас офлайн Пожаловаться на ciphermonk   Ответить с цитированием Мультицитирование сообщения от ciphermonk Быстрый ответ на сообщение ciphermonk



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW