Это скрипт:
Код:
быстрая и грязная произвольная мясорубка открытого ключа # Wyager в
импорт binascii
импорт SYS
импорт hashlib
code_string = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
###
Публичный = sys.argv [1] #The "открытый ключ" является первой аргумент командной строки
###
sha_pubkey = hashlib.sha256 (Публичный) .digest () # ша из "открытый ключ"
###
спелые = hashlib.new ("ripemd160")
ripe.update (sha_pubkey)
ripe_pubkey = ripe.digest () # RIPEMD того, что
###
versioned_ripe_pubkey = "\ x00" + ripe_pubkey # добавить 00 к началу
###
sha_ripe_1 = hashlib.sha256 (versioned_ripe_pubkey) .digest () # ша, что когда-то
sha_ripe_2 = hashlib.sha256 (sha_ripe_1) .digest () # ша дважды
checksum_4_bytes = sha_ripe_2 [0: 4] #take первые 4 байта, что
###
ripemd_and_checksum = versioned_ripe_pubkey + checksum_4_bytes # палка, что на конце RIPEMD
###
integer_result = INT (binascii.hexlify (ripemd_and_checksum), 16)
base58check_result = ""
в то время как (integer_result > 0): # base58check закодировать что
Остаток = integer_result% 58
integer_result = integer_result / 58
base58check_result = base58check_result + code_string [остальное] #insert значения base58
= 0
в то время как (ripemd_and_checksum [я] =="\ x00"): #append "1" для каждого ведущего нуля байт
base58check_result = base58check_result + "1"
I = I + 1
###
reversechars = список (base58check_result) #flip строку вокруг, чтобы сделать его большим обратным порядком байтов
reversechars.reverse ()
base58check_result = '' .join (reversechars)
###
печать base58check_result
импорт binascii
импорт SYS
импорт hashlib
code_string = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
###
Публичный = sys.argv [1] #The "открытый ключ" является первой аргумент командной строки
###
sha_pubkey = hashlib.sha256 (Публичный) .digest () # ша из "открытый ключ"
###
спелые = hashlib.new ("ripemd160")
ripe.update (sha_pubkey)
ripe_pubkey = ripe.digest () # RIPEMD того, что
###
versioned_ripe_pubkey = "\ x00" + ripe_pubkey # добавить 00 к началу
###
sha_ripe_1 = hashlib.sha256 (versioned_ripe_pubkey) .digest () # ша, что когда-то
sha_ripe_2 = hashlib.sha256 (sha_ripe_1) .digest () # ша дважды
checksum_4_bytes = sha_ripe_2 [0: 4] #take первые 4 байта, что
###
ripemd_and_checksum = versioned_ripe_pubkey + checksum_4_bytes # палка, что на конце RIPEMD
###
integer_result = INT (binascii.hexlify (ripemd_and_checksum), 16)
base58check_result = ""
в то время как (integer_result > 0): # base58check закодировать что
Остаток = integer_result% 58
integer_result = integer_result / 58
base58check_result = base58check_result + code_string [остальное] #insert значения base58
= 0
в то время как (ripemd_and_checksum [я] =="\ x00"): #append "1" для каждого ведущего нуля байт
base58check_result = base58check_result + "1"
I = I + 1
###
reversechars = список (base58check_result) #flip строку вокруг, чтобы сделать его большим обратным порядком байтов
reversechars.reverse ()
base58check_result = '' .join (reversechars)
###
печать base58check_result
Я не использую питон очень часто, так что прощу мою плохую форму.
Мое намерение здесь было сделать простую систему, которая позволяла доказательства авторского права или любой другой. Ты обращаешься секретная строка / документ как "открытый ключ"И отправить деньги на соответствующий адрес, поэтому он показывает на blockchain. Если вам когда-нибудь понадобится, чтобы доказать, что вы знали строку / документ в какой-то момент, вы можете просто указать на сделку, которая имеет этот адрес на blockchain. Это дает сильный хэш + временную метку. Это, очевидно, не единственный способ сделать это, это было просто для удовольствия.
Во всяком случае, то, что я заметил, что кто-то, очевидно, была та же идея. Я побежал этот сценарий с помощью "Здравствуйте" как открытый ключ, и что производит адрес 1HeqNjAst5TCQ63F7xhjg6bcTbDKrRk7sH. В соответствии с http://blockexplorer.com/address/1HeqNjAst5TCQ63F7xhjg6bcTbDKrRk7sH, кто уже отправил деньги "Здравствуйте", Интересно, что другие адреса там, как это существует?