【2023年】第65天 python中的加密工具
2023/12/26 23:02:40
本文主要是介绍【2023年】第65天 python中的加密工具,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、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)
这篇关于【2023年】第65天 python中的加密工具的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享