_salechars = _string.ascii_letters + _string.digits + './'
def mksalt(method = None):
if method is None:
method = methods[0]
s = '${}$'.format(method.ident) if method.ident else ''
s += ''.join(_sr.choice(_saltchars) for char in range(method.salt_chars))
return s
METHON_SHA256 = _Method('SHA256','5',16,63)
METHON_SHA512 = _Method('SHA512','6',16,106)
method = []
for _method in (METHOD_SHA512,METHOD_SHA256,METHOD_MD5,METHOD_CPYPT):
_result = crypt('',_method)
if _result and len(_result) == _method.total_size:
methods.append(_method)