Python中的加密解密函数及实例
Python中的加密解密函数及实例
加密和解密是现代计算机科学中的两个重要部分。加密是将明文(原始数据)转换为密文(加密数据)的过程,解密是将密文转换回明文的过程。在此过程中,密钥将用于执行转换。 Python提供了一些库来实现加密和解密。在本文中,我们将研究Python中的加密解密函数及实例。
Python中的加密解密函数
1. hashlib库
hashlib是Python中用于加密散列函数的库。散列函数不是双向函数,因此不能反向应用散列函数,而且无法通过使用散列输出回推输入。散列函数的目的是使输入随机出现,无论输入长度如何,散列输出长度始终相同。Python中的hashlib提供了多种散列函数,如SHA1,SHA256,MD5等。
以下是一些示例函数:
a. hashlib.md5()
该函数返回用于MD5散列的哈希对象。
步:初始化hashlib
hash_object = hashlib.md5()
第二步:更新原始数据
hash_object.update(b'Hello World')
第三步:获取哈希值
hash_object.hexdigest()
输出结果:
'86fb269d190d2c85f6e0468ceca42a20'
b. hashlib.sha1()
该函数返回用于SHA1散列的哈希对象。SHA1是一种基于散列的安全散列算法。以下是示例代码:
步:初始化hashlib
hash_object = hashlib.sha1()
第二步:更新原始数据
hash_object.update(b'Hello World')
第三步:获取哈希值
hash_object.hexdigest()
输出结果:
'0a4d55a8d778e5022fab701977c5d840bbc486d0'
2. cryptography库
cryptography是Python中用于开发密码学应用程序和协议的库。它提供了像AES,RSA和Blowfish等基础功能的高级加密功能。cryptography库也包括一些协议层(像TLS和DTLS),以及用于处理x509证书,TLS证书验证和其他相关任务的工具。该库被广泛用于在Python中实现加密和解密。
以下是一些示例函数:
a. 加密(Fernet)
步:生成密钥
from cryptography.fernet import Fernet
key = Fernet.generate_key()
第二步:加密消息
f = Fernet(key)
token = f.encrypt(b"Hello World")
第三步:解密消息
f.decrypt(token)
输出结果:
b'Hello World'
b. RSA
RSA是一种非对称加密算法,它涵盖了加密和签名的功能。RSA基于一个由两个大质数相乘组成的公钥和私钥。Python的cryptography库为RSA提供了支持。
以下是一些示例函数:
步:生成密钥
from cryptography.hazmat.primitives.asymmetric import rsa
private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048,
)
第二步:加密消息
from cryptography.hazmat.primitives.asymmetric import padding
public_key = private_key.public_key()
ciphertext = public_key.encrypt(
b"Hello World!",
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
第三步:解密消息
plaintext = private_key.decrypt(
ciphertext,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
输出结果:
b'Hello World!'
结论
在本文中,我们研究了Python中的加密解密函数及相关实例。Python提供了非常广泛的加密和解密操作库,如实例所示,这些库提供了许多加密解密操作函数和方便的应用程序程序接口(API),可以轻松地实现各种安全需求。加密和解密操作始终是计算机科学的前沿研究领域,虽然Python这些库已经实现了这些功能,但是仍需要持续的发展和应用。
