Base 58 Encoding: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
m Add: Category:Technical |
||
Line 172: | Line 172: | ||
== Source == | == Source == | ||
https://github.com/bitcoin/bitcoin/blob/master/src/base58.h | https://github.com/bitcoin/bitcoin/blob/master/src/base58.h | ||
[[Category:Technical]] |
Revision as of 09:11, 19 September 2011
Base 58 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.
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();