Python base64和hashlib模块及用法详解.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Python?base64和hashlib模块及用法详解

目录一、base64模块1、对字符串编解码2、对URL编解码二、hashlib模块1、hashlib模块1.1常用属性1.2常用方法1.3使用步骤2、MD5(消息摘要算法)3、SHA-256(安全哈希算法)

一、base64模块

base64模块提供了在二进制数据和可打印ASCII字符间编解码的功能,包括RFC3548中定义的Base16,Base32,Base64,Ascii85,Base85等编码。

base64模块属于标准库,无需进行安装,导入即可使用。

base64模块支持两种接口:

bytes类型数据进行base64编码。即将类字节对象编码为由ASCII可打印字符表示的bytes。base64编码的bytes类型进行解码。即将类字节对象或纯ASCII字符组成的Unicode字符串解码为bytes。

注意:编码与解码的处理对象是byte,及参数必须是二进制数据,才可以进行正常使用。

1、对字符串编解码

importbase64

str=HelloPython

#默认以utf-8编码

byte_str=str.encode(utf-8)

b64_str=base64.b64encode(byte_str)

print(b64_str)

print(-------------)

#默认以utf-8解码

byte_str2=base64.b64decode(b64_str)

str2=byte_str2.decode(utf-8)

print(str2)

2、对URL编解码

importbase64

url=k1=v1k2=值二

#默认以utf-8编码

byte_url=url.encode(utf-8)

b64_url=base64.b64encode(byte_url)

print(b64_url)#baHR0cDovL3d3dy5iYWlkdS5jb20/azE9djEmazI95YC85LqM

print(-------------)

#默认以utf-8解码

byte_url2=base64.b64decode(b64_url)

url2=byte_url2.decode(utf-8)

print(url)#k1=v1k2=值二

二、hashlib模块

1、hashlib模块

hashlib是Python的内置模块,提供了多种安全方便的常见摘要算法,其中主要包括MD5,SHA1,SHA256,SHA384,SHA512等。这些摘要方法在使用上通用,返回带有同样接口的hash对象,对算法的选择,差别只在于构造方法的选择。

摘要算法又称哈希算法、散列算法。它通过一个函数算法,把任意长度的数据转换为一个长度固定的数据串)。

1.1常用属性

importhashlib

#列出hashlib内容

print(dir(hashlib))

#列出所有加密算法

print(hashlib.algorithms_available)

print(hashlib.algorithms_guaranteed)

#产生的散列字节大小。

h.digest_size

#哈希内部块的大小

h.block_size

1.2常用方法

#创建指定加密模式的hash对象

hash.new([arg])

#更新哈希对象以字符串参数。

#如果同一个hash对象重复调用该方法,m.update(a);m.update(b)等价于m.update(a+b)

hash.update(arg)

#返回摘要,作为二进制数据字符串值。

hash.digest()

#返回摘要,作为十六进制数据字符串值

hash.hexdigest()

hash.copy()

1.3使用步骤

方式一:

importhashlib

#-------以MD5为例-------

#1.创建hash工厂

m=hashlib.md5()

#2.在内存里面加载二进制数据

#m.update(Hello.encode(utf-8))

#m.update(Python.encode(utf-8))

##等价于,如果二进制数据很长的话,可以分开更新

m.update(HelloPython.encode(utf-8))

print(m.digest_size)#16

print(m.block_size)#64

#3、返回十六进制str摘要值

hash_value=m.he

文档评论(0)

135****8957 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档