python3中使用md5

MD5

首先来介绍一下什么是md5
MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)
详细查看百度百科md5

在python3中的用法

import hashlib

# 创建MD5对象,可以直接传入要加密的数据
m=hashlib.md5('123456'.encode(encoding='utf-8'))
# m=hashlib.md5(b'123456') 与上面等价
print(m) 
print(m.hexdigest()) # 转化为16进制打印md5值

这里传入的字符串前加以个b将其转为二进制,或者声明为utf-8,否则回报错误TypeError: Unicode-objects must be encoded before hashing
输出结果为

object @ 0x000001C67C71C8A0>
e10adc3949ba59abbe56e057f20f883e

也可以使用MD5对象的update()方法传入要加密的数据

import hashlib

str='This is a string.'
m=hashlib.md5()
m.update(str.encode(encoding='utf-8'))
print(m.hexdigest())

结果为:

13562b471182311b6eea8d241103e8f0

如果要被加密的数据太长,可以分段update,结果是一样的

import hashlib

str='This is a string.'
m=hashlib.md5()
m.update('This i'.encode('utf-8'))
m.update('s a string.'.encode('utf-8'))
print(m.hexdigest())

结果为:

13562b471182311b6eea8d241103e8f0

写的不好请见谅,坚持写东西,慢慢成长!

你可能感兴趣的:(python)