hashlib模块:md5或sha摘要算法

def md5(text, salt='', type_='MD5', encode='16'):
u"""
:param text: 要加密的明文
:param type_: 要加密的类型,默然MD5。或者单向加密的SHA
:param encode: 返回密文的编码方式,2位或16位或64位的ascii
:return: 大写的密文
"""
if type_ == 'MD5':
obj = hashlib.md5(text)
elif type_ == 'SHA1':
obj = hashlib.sha1(text)
elif type_ == 'SHA224':
obj = hashlib.sha224(text)
elif type_ == 'SHA256':
obj = hashlib.sha256(text)
else:
obj = None
return

if encode == '16':
# MD5算法获取的数据摘要长度是128bits,十六进制字符串的每个字符占位为4bits,因此最后得到的字符串长度是128/4=32
return obj.hexdigest().upper().strip()
elif encode == '2':
# MD5算法获取的数据摘要长度是128bits,二进制字符串的每个字符为一个字节为8bits,因此最后得到的字符串长度是128/8=16
return obj.digest().upper().strip()
elif encode == '64':
# MD5算法获取的数据摘要长度是128bits,六十四进制字符串的每个字符占位为8bits,因此最后得到的字符串长度是128/8=16
return b2a_base64(obj.digest()).upper().strip()
sha = hashlib.sha256()
sha.update('pwd123')
sha.hexdigest()
#  OUT:    '3838bd5806d32cd91144865aa822b9551417dd2796c163d390baa7074d3067a7'

 



posted on 2018-04-04 15:16  myworldworld  阅读(100)  评论(0)    收藏  举报

导航