【11】python模块:xpinyin(拼音)、hashlib(加密)
1、下载安装模块
cmd下执行命令下载安装:pip install xpinyin
cmd下执行命令下载安装:pip install hashlib
2、xpinyin模块(拼音)
from xpinyin import Pinyin p = Pinyin() res = p.get_pinyin("上海") #'shang-hai' res = p.get_pinyin("上海","")#默认用-连接拼音,所以我们在后面加上了'' #'shanghai' res = p.get_pinyin("上海", ' ') # 'shang hai' res = p.get_pinyin(u"上海", show_tone_marks=True) # 'shàng-hǎi' res = p.get_initial("上") # 'S' res = p.get_initials("上海") # 'S-H' res = p.get_initials("上海", '') # 'SH' res = p.get_initials("上海", ' ') # 'S H' print(res)
3、hashlib模块(加密)
hashlib模块,主要用于加密相关的操作,在python3的版本里,代替了md5和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法。
以上几种加密方式的区别为密码长度。md5不能反解,但是加密是固定的,就是关系是一一对应,所以有缺陷,可以被对撞出来
import hashlib password='123123' # password.encode()#转成二进制类型的才可以加密 m = hashlib.md5(password.encode()) #md5加密 <md5 HASH object @ 0x104060670> print(m.hexdigest())#将转成二进制后的字符串加密 4297f44b13955235245b2497399d7a93
4、小练习
写一个加密的函数,并加盐,加盐的意思是在密码后面加一个字符串
def my_md5(s:str,salt=None): #salt是盐值 s = str(s)#先转成字符串 if salt:#如果传入的有盐值 s = s+salt m = hashlib.md5(s.encode())#先转成二进制 return m.hexdigest()