"""
nary - convert integer to a number with an arbitrary base.
"""
__all__ = ['nary']
_alphabet='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
def _getalpha(r):
if r>=len(_alphabet):
return '_'+nary(r-len(_alphabet),len(_alphabet))
return _alphabet[r]
def nary(number, base=64):
"""
Return string representation of a number with a given base.
"""
if isinstance(number, str):
number = eval(number)
n = number
s = ''
while n:
n1 = n // base
r = n - n1*base
n = n1
s = _getalpha(r) + s
return s
def encode(string):
import md5
return nary('0x'+md5.new(string).hexdigest())
#print nary(12345124254252525522512324,64)
|