# 一,md5加密
# 由于MD5模块在python3中被移除
# 在python3中使用hashlib模块进行md5操作

import hashlib

# 待加密信息
str = "4CbLXeGSDxg"

# 创建md5对象
m = hashlib.md5()

# Tips
# 此处必须encode
# 若写法为m.update(str)  报错为: Unicode-objects must be encoded before hashing
# 因为python3里默认的str是unicode
# 或者 b = bytes(str, encoding='utf-8'),作用相同,都是encode为bytes
b = str.encode(encoding='utf-8')
m.update(b)
str_md5 = m.hexdigest()

print('MD5加密前为 :' + str)
print('MD5加密后为 :' + str_md5)

二、sha1加密

import hashlib

sha1 = hashlib.sha1()
key ='how to use sha1 in '.encode('utf-8')
# key ='how to use sha1 in '  # TypeError: Unicode-objects must be encoded before hashing
sha1.update(key)
print(sha1.hexdigest())