一、hashlib包介绍
1. hashlib常用的加密方法
函数名 | 参数 | 介绍 | 举例 | 返回值 |
---|---|---|---|---|
md5 | byte | Md5算法加密 | hashlib.md5(b’ hello’) | Hash对象 |
sha1 | byte | Sha1算法加密 | hashlib.sha1(b’ hello’) | Hash对象 |
sha256 | byte | Sha256算法加密 | hashlib.sha256(b’ hello’) | Hash 对象 |
sha512 | byte | Sha512算法加密 | hashlib.sha512(b’ hello’) | Hash 对象 |
以上列表中的方法,从上到下加密后,可以破解的概率越小,破解的难度越高。
2.例子
import hashlib
import time
base_sign = 'Jg'
def custom():
# python的时间戳是一个浮点类型的
a_timestamp = int(time.time())
_token = '%s%s' % (base_sign, a_timestamp)
hashobj = hashlib.sha1(_token.encode('utf-8'))
a_token = hashobj.hexdigest()
return a_token, a_timestamp
def b_service_check(token, timestamp):
_token = '%s%s' % (base_sign, timestamp)
b_token = hashlib.sha1(_token.encode('utf-8')).hexdigest()
if token == b_token:
return True
else:
return False
if __name__ == '__main__':
need_help_token, timestamp = custom()
time.sleep(1)
result = b_service_check(need_help_token, int(time.time()))
if result == True:
print('a合法,b服务可以进行帮助')
else:
print('a不合法,b不可进行帮助')
3. base64包的常用方法
函数名 | 参数 | 介绍 | 举例 | 返回值 |
---|---|---|---|---|
encodestring | byte | 进行base64加密 | base64.encodestring(b’py’) | byte |
decodestring | byte | 对base64解密 | base64.decodestring(b’eGlhb211\n’) | byte |
encodebytes | byte | 进行base64加密 | base64.encodebytes(b’py’) | byte |
decodebytes | byte | 对base64解密 | base64.decodebytes(b’eGlhb211\n’ | byte |
4.例子
import base64
replace_one = '%'
replace_two = '$'
def encode(data):
if isinstance(data, str):
data = data.encode('utf-8')
elif isinstance(data, bytes):
data = data
else:
raise TypeError('data need bytes or str')
_data = base64.encodebytes(data).decode('utf-8')
_data = _data.replace('a', replace_one).replace('=', replace_two)
return _data
def decode(data):
if not isinstance(data, bytes):
raise TypeError('data need bytes')
replace_one_b = replace_one.encode('utf-8')
replace_two_b = replace_two.encode('utf-8')
data = data.replace(replace_one_b, b'a').replace(replace_two_b, b'=')
return base64.decodebytes(data).decode('utf-8')
if __name__ == '__main__':
result = encode('hello xu')
print(result)
new_result = decode(result.encode('utf-8'))
print(new_result)
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦