Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
22 июня 2017, 4:09:17 PM   # 1
 
 
Сообщений: 5
Цитировать по имени
цитировать ответ
по умолчанию Re: Почему SHA256 работы реализации Bitcoin по-другому?

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


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

Я пытался написать свою собственную шахтеру, но просто не понимаю, что функция хеширования () в hash.h делает.
Это мой код:
Код:
// выделить 80 байт 0x00s
неподписанные символ * память = (неподписанные символ *) таНос (80);
INT * Результат = (беззнаковое INT *) таНос (32);
память, 0,80);
память, 0,32);

кажется, делают хэш под названием SHA-256
хэш = Хеш (память, память + 80);
Хэш:% s \ п", Hash.GetHex () c_str ()).
//14508459...0e57e74b

Однако, когда я пытаюсь сделать это с _любой_ другой реализацией SHA256 Я всегда получить другой результат (я попробовал три, который дал мне тот же результат). Вот мой Java-код:
Код:
MessageDigest мкр = MessageDigest.getInstance ("SHA-256");
байт [] переваривать = md.digest (ByteBuffer.allocate (80) .array ());
для (байт с: дайджест) {
System.out.format ("%Икс", С);
}
// 5b6fb58e61fa475939767d68a446f97f1bff2c0e5935a3ea8bb51e6515783d8

Я думал, что, может быть, я должен удвоить хэш, но это оставляет меня с этим:
Код:
MessageDigest MD2 = MessageDigest.getInstance ("SHA-256");
байт [] digest2 = md2.digest (md2.digest (ByteBuffer.allocate (80) .array ()));
для (байт с: digest2) {
System.out.format ("%Икс", С);
}
// 4be757e8f70eb93640c8468274ba759745a7aa2b7d25ab1e421b259845014

Таким образом, хэш-я получаю от реализации Bitcoin отличается от любого другого внедрения SHA256 по какой-то причине ... что мне не хватает? Могу ли я с помощью алгоритма неправильно? инициализировано ли это по-другому (другая реализация не дает мне возможность параметризующих функции)? Имеет ли он просто работает по-другому (не в соответствии со стандартом)?

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


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


22 июня 2017, 5:08:18 PM   # 2
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию Re: Почему SHA256 работы реализации Bitcoin по-другому?

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





Хэш что Bitcoin использует являются двойными хэш SHA256. Хэш также обычно в Little Endian порядка байт. Таким образом, ваша вторая попытка с двойным хэша на самом деле правильно, но с неправильным порядком байтов. Вам нужны байты поменять свой результат, чтобы быть в правильной упорядоченности.
achow101 сейчас офлайн Пожаловаться на achow101   Ответить с цитированием Мультицитирование сообщения от achow101 Быстрый ответ на сообщение achow101

22 июня 2017, 9:35:01 PM   # 3
 
 
Сообщений: 5
Цитировать по имени
цитировать ответ
по умолчанию Re: Почему SHA256 работы реализации Bitcoin по-другому?

Спасибо за ответ, я до сих пор не понимаю эту проблему, хотя. Массив состоит из 80 байт все, представляющей ценность 0x00. Это должно быть одинаковым, независимо от порядка байтов, не так ли?

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

22 июня 2017, 9:56:49 PM   # 4
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию Re: Почему SHA256 работы реализации Bitcoin по-другому?

Спасибо за ответ, я до сих пор не понимаю эту проблему, хотя. Массив состоит из 80 байт все, представляющей ценность 0x00. Это должно быть одинаковым, независимо от порядка байтов, не так ли?

EDIT: Я не знаю, на самом деле, почему, но я проверил порядок байт просто чтобы убедиться, ... как и ожидалось, что не делает разницы для массива байтов в вопросе.
Это не имеет ничего общего с тем, что вы инициализируетесь массив с ни с чем, что вы передали в функцию. Порядок байт должен сделать с выходом хэш-функции. Выход отличается тем, что Bitcoin использует мало порядок байтов от практически за все, поэтому выход хэш-функции будет небольшим обратным порядком байтов. Однако большинство других реализаций SHA256 будет выход в большой Endian порядок байтов, так что вам нужно будет отменить хэш от других реализаций, чтобы получить немного обратным порядком байтов, Bitcoin использует.
achow101 сейчас офлайн Пожаловаться на achow101   Ответить с цитированием Мультицитирование сообщения от achow101 Быстрый ответ на сообщение achow101

23 июня 2017, 3:22:36 AM   # 5
 
 
Сообщений: 56
Цитировать по имени
цитировать ответ
по умолчанию Re: Почему SHA256 работы реализации Bitcoin по-другому?

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

23 июня 2017, 3:24:36 AM   # 6
 
 
Сообщения: 2002
Цитировать по имени
цитировать ответ
по умолчанию Re: Почему SHA256 работы реализации Bitcoin по-другому?

- чик -
Это мой код:
Код:
- чик -
//14508459...57e74b

Здесь, позвольте мне код цвета, который для вас. Возможно, это будет легче увидеть, что achow101 говорит ...
14508459...57e74b

- чик -
Я думал, что, может быть, я должен удвоить хэш, но это оставляет меня с этим:
Код:
- чик -
// 4be757e8f70eb93640c8468274ba759745a7aa2b7d25ab1e421b259845014

Посмотрите на согласующих цветов, увидеть, если вы можете определить, что произошло ...
4be757e8f70eb93640c8468274ba759745a7aa2b7d25ab1e421b259845014
DannyHamilton сейчас офлайн Пожаловаться на DannyHamilton   Ответить с цитированием Мультицитирование сообщения от DannyHamilton Быстрый ответ на сообщение DannyHamilton

23 июня 2017, 4:14:35 AM   # 7
 
 
Сообщения: 428
Цитировать по имени
цитировать ответ
по умолчанию Re: Почему SHA256 работы реализации Bitcoin по-другому?

Bitcoin использует мало порядок обратный порядок байт байт. Это не то, что вы делаете.

Не всегда! Есть случаи, которые используют тупоконечник.
Кодирование Энтузиаст сейчас офлайн Пожаловаться на Coding Энтузиаст   Ответить с цитированием Мультицитирование сообщения от Coding Энтузиаст Быстрый ответ на сообщение Coding Энтузиаст

23 июня 2017, 9:42:47 AM   # 8
 
 
Сообщений: 5
Цитировать по имени
цитировать ответ
по умолчанию Re: Почему SHA256 работы реализации Bitcoin по-другому?

@ Achow101: Спасибо за разъяснение ... Я думаю, что я смотрел на слишком много битов вчера. Это очень помогает!

@DannyHamilton: Спасибо, а также для сдачи в попытке раскрасить его и все. Однако вы сделали фальшивый свой комментарий немного:
Вы написали:
котировка
- чик -
//14508459...57e74b
Я написал:
котировка
//14508459...057e74b
Смотрите дополнительный ноль там? Такого рода беспокоит меня до сих пор ... Другая реализация содержит нули, так что я думаю, что есть проблема с моей реализацией Java ... Я буду исследовать ...

EDIT: Простая проблема ... мой Java-код глотает ведущие нули ...
Плохой код:
Код:
System.out.format ("%Икс", С);
Хороший код:
Код:
System.out.format ("% 02x", С);

Еще раз спасибо всем здесь помочь мне с этой проблемой!

EDIT2: Так что для Комплектности сака в случае, если кто-то Googles это ... эта функция Java, кажется, производит то же самое, как Hash Bitcoin в (...) функции:
Код:
статический байт [] btcSha256d (байт [] память) бросает NoSuchAlgorithmException {
MessageDigest мкр = MessageDigest.getInstance ("SHA-256");
байт [] Результат = md.digest (md.digest (память));
для (INT I = 0; я байт темп = результат [I];
Результат [я] = результат [result.length-я-1];
Результат [result.length-я-1] = темп;
}
возвращать результат;
}
minerino123 сейчас офлайн Пожаловаться на minerino123   Ответить с цитированием Мультицитирование сообщения от minerino123 Быстрый ответ на сообщение minerino123



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW