Base58decodeはBase58encodeの逆の処理を行う
import sys import re matrix=list('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz') pattern=r"^1*" for line in sys.stdin: target=line.strip('\n') match=re.match(pattern, target) ones=match.group() target=target.lstrip(ones) targetChars=list(target) q=0 for c in targetChars: q=q*58+matrix.index(c) decodedHex=str(hex(q)).lstrip('0x') decodedHex=ones.replace('1','00') + decodedHex hexlen=len(decodedHex) if hexlen % 2 == 1: print('0'+decodedHex) else: print(decodedHex)
$ echo 18N | python3 base58decode.py
0001ab