|
|
(One intermediate revision by the same user not shown) |
Line 1: |
Line 1: |
| ==Base 58 Encoding==
| | #REDIRECT [[Base58Check encoding]] |
| | |
| Base 58 encoding is used for encoding addresses.
| |
| | |
| Address = Base58Encode(RIPEMD160(SHA-256(public key))
| |
| | |
| The public key is expressed as an encoded point.
| |
| | |
| {| class="wikitable"
| |
| |-
| |
| !Code
| |
| !Character
| |
| !Code
| |
| !Character
| |
| !Code
| |
| |Character
| |
| !Code
| |
| !Character
| |
| |-
| |
| |0
| |
| |1
| |
| |1
| |
| |2
| |
| |2
| |
| |3
| |
| |3
| |
| |4
| |
| |-
| |
| |4
| |
| |5
| |
| |5
| |
| |6
| |
| |6
| |
| |7
| |
| |7
| |
| |8
| |
| |-
| |
| |8
| |
| |9
| |
| |9
| |
| |A
| |
| |10
| |
| |B
| |
| |11
| |
| |C
| |
| |-
| |
| |12
| |
| |D
| |
| |13
| |
| |E
| |
| |14
| |
| |F
| |
| |15
| |
| |G
| |
| |-
| |
| |16
| |
| |H
| |
| |17
| |
| |J
| |
| |18
| |
| |K
| |
| |19
| |
| |L
| |
| |-
| |
| |20
| |
| |M
| |
| |21
| |
| |N
| |
| |22
| |
| |P
| |
| |23
| |
| |Q
| |
| |-
| |
| |24
| |
| |R
| |
| |25
| |
| |S
| |
| |26
| |
| |T
| |
| |27
| |
| |U
| |
| |-
| |
| |28
| |
| |V
| |
| |29
| |
| |W
| |
| |30
| |
| |X
| |
| |31
| |
| |Y
| |
| |-
| |
| |32
| |
| |Z
| |
| |33
| |
| |a
| |
| |34
| |
| |b
| |
| |35
| |
| |c
| |
| |-
| |
| |36
| |
| |d
| |
| |37
| |
| |e
| |
| |38
| |
| |f
| |
| |39
| |
| |g
| |
| |-
| |
| |40
| |
| |h
| |
| |41
| |
| |i
| |
| |42
| |
| |j
| |
| |43
| |
| |k
| |
| |-
| |
| |44
| |
| |m
| |
| |45
| |
| |n
| |
| |46
| |
| |o
| |
| |47
| |
| |p
| |
| |-
| |
| |48
| |
| |q
| |
| |49
| |
| |r
| |
| |50
| |
| |s
| |
| |51
| |
| |t
| |
| |-
| |
| |52
| |
| |u
| |
| |53
| |
| |v
| |
| |54
| |
| |w
| |
| |55
| |
| |x
| |
| |-
| |
| |56
| |
| |y
| |
| |57
| |
| |z
| |
| |}
| |
| | |
| The algorithm for encoding is
| |
| | |
| code_string = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
| |
| x = convert_bytes_to_big_integer(hash_result)
| |
|
| |
| output_string = ""
| |
|
| |
| while(x > 0)
| |
| {
| |
| (x, remainder) = divide(x, 58)
| |
| output_string.append(output_string[remainder])
| |
| }
| |
|
| |
| repeat(number_of_leading_zeros_in_hash)
| |
| {
| |
| output_string.append(output_string[0]);
| |
| }
| |
|
| |
| output_string.reverse();
| |
| | |
| == Source ==
| |
| https://github.com/bitcoin/bitcoin/blob/master/src/base58.h
| |
| | |
| [[Category:Technical]]
| |