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