Функция грызть (последовательность о)
если длина (о) и [длина (о)] о = «\ п», то
вернуться о [1..length (о) -1]
конец, если
вернуться о
конец функции
константа pszBase58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
Функция decode_base_58 (последовательность с)
атом ответ = 0
атом power_multicand = 1
для г = длины (ов) к 1 по -1 дел
ответить + = power_multicand * (найти (с [I], pszBase58) -1)
power_multicand * = 58
конец для
обратный ответ
конец функции
Последовательность линия = грызть (получает (0))
? журнал (decode_base_58 (строка)) / журнал (256)
Вы будете нуждаться в эйфории для этого. (См openeuphoria.org) Здесь этот декодирует WIF отправлен стандартного ввода и печатает базу журнала 256 значения. Теперь, если наименьшее целое число, большее или равное этому значению является 38, то вам нужно 38 байт для представления его.
Дело в том, что числа не являются произвольными числами длин ничего не значит для нас только заботиться о величине. Я побежал это на WIF я получил от моего Bitcoin клиента и получил:
37.87505791
Вам нужно 38 байт для этого значения. Возможно, мы должны быть в состоянии импортировать WIF я получил от одного клиента к другому. Я постараюсь это. Наиболее значимый байт 128, который является магическим числом.