欢迎访问宙启技术站
智能推送

Python中的加密解密函数及实例

发布时间:2023-06-22 06:59:38

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这些库已经实现了这些功能,但是仍需要持续的发展和应用。