Python3 常用加密算法(md5、sha1、base64)

MD5

MD5的全称是Message-Digest Algorithm 5(信息-摘要算法)。128位长度。目前MD5是一种不可逆算法,具有很高的安全性。它对应任何字符串都可以加密成一段唯一的固定长度的代码

SHA1

SHA1的全称是Secure Hash Algorithm(安全哈希算法) 。SHA1基于MD5,加密后的数据长度更长,它对长度小于264的输入,产生长度为160bit的散列值。比MD5多32位,因此,比MD5更加安全,但SHA1的运算速度就比MD5要慢了

base64

Base64编码是一种“防君子不防小人”的编码方式。广泛应用于MIME协议,作为电子邮件的传输编码,生成的编码可逆,后一两位可能有“=”,生成的编码都是ascii字符

示例

因为在 Python3 中字符都为unicode编码,而这些加密算法函数的参数都是 byte 类型,所以必须先转码

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

import hashlib
import base64

data = "Hello World"
data = data.encode(encoding='UTF-8')

md5 = hashlib.new('md5', data).hexdigest()
print(md5)

md5 = hashlib.md5(data).hexdigest()
print(md5)

sha1 = hashlib.sha1(data).hexdigest()
print(sha1)

bs = str(base64.b64encode(data), 'UTF-8')
print(bs)

处理大文件

有时候需要检测两个很大的文件,担心内存不够用,这时怎么办?别担心 hashlib 提供了 update 方法,可以分段保存明文,最后一起加密为密文

md5 = hashlib.md5()
md5.update(data[:6])
md5.update(data[6:])
md5 = md5.hexdigest()
print(md5)

你可能感兴趣的:(#,Python3,基础知识)