python-加密算法
#!/usr/bin/python3 # coding:utf-8 # Auther:AlphaPanda # Description: 使用hashlib模块的md5和sha系列加密算法对字符串进行加密;使用hmac模块的new方法对字符串进行加密;使用os模块的urandom方法生成指定长度的二进制字节流 # Version:1 # Date:Fri Dec 6 20:08:37 EST 2019 import hashlib import random # 生成一个md5对象 hs = hashlib.md5() # 使用hs对象自带的update方法,对"abc123"字符串进行加密 hs.update("abc123".encode("utf-8")) # 使用对象的hexdigest方法,获取加密后的字符串 print(hs.hexdigest()) # 普通的MD5加密算法加密的字符串强度不够,容易被破解。可以在加密时加上其他字符串来增强安全性 # 这个加上其他字符串的过程,俗称加盐。 # 注意:在加盐时,需要在生成对象的时候加,另外需要注意的是,加入的是字节流 hs = hashlib.md5("Michael91".encode("utf-8")) hs.update("abc123".encode("utf-8")) print(hs.hexdigest()) # 如果使用固定字符串加盐还不够,可以使用随机数据加密 str_new = str(random.randrange(100,10000)) hs = hashlib.md5(str_new.encode()) hs.update("abc123".encode()) print(hs.hexdigest()) # sha1加密算法 hs = hashlib.sha1() hs.update("abc123".encode()) print(hs.hexdigest()) hs = hashlib.sha1("Michael".encode()) hs.update("abc123".encode()) print(hs.hexdigest()) # hmac加密 import hmac key = b"abc" msg = b"I love you" hm = hmac.new(key,msg) print(hm.hexdigest()) key1 = b"vmasdf" meg1 = b"shabi" hm = hmac.new(key1,meg1) print(hm.hexdigest()) import os # 随机返回指定长度得二进制字节流 key2 = os.urandom(32) print(key,len(key)) message = b"thank you" hm = hmac.new(key2,message) print(hm.hexdigest()) # 使用os模块得urandom方法生成指定长度的二进制字节流 key3 = os.urandom(16) mes1 = b"i like" hm = hmac.new(key3,mes1) print(hm.hexdigest())
念念不忘,必有回响。