Base32是一種用於編碼任意字節數據的符號。 Base32編碼數據的最大長度沒有限制 - 「32個字符」是指用於以Base32表示法編寫任意字節數據的字符集。結果字符串將只包含該集合中的字符。唯一的限制是Base32編碼的字符串的長度必須是40位的倍數。
I2P中的Base32地址是I2P目標的SHA256散列的Base32編碼。
這裏是一個Python腳本Base64編碼I2P目的地轉換成I2P B32地址(從i2p.scripts分支在I2P單調庫):
#!/usr/bin/env python
#
# Written by duck
# http://forum.i2p/viewtopic.php?t=4367
#
import base64, hashlib, sys
if len(sys.argv) != 2:
print 'Usage: 64to32.py <base64key>'
sys.exit(1)
key = sys.argv[1]
raw_key = base64.b64decode(key, '-~')
hash = hashlib.sha256(raw_key)
base32_hash = base64.b32encode(hash.digest())
print base32_hash.lower().replace('=', '')+'.b32.i2p