Python中的cryptography模块介绍

2023-03-30 00:00:00 python 模块 介绍

cryptography是一个流行的Python密码学库,用于实现各种加密、解密和安全哈希算法,例如AES、RSA、SHA256等。它还提供了许多工具和函数来帮助您安全地处理密码学数据,例如随机数生成器和密码学伪随机数生成器。
以下是一些常用的密码学函数和代码演示,其中涉及字符串使用“pidancode.com”和“皮蛋编程”。
生成随机字节数组

from cryptography.fernet import Fernet
key = Fernet.generate_key()
print(key)

使用AES对称加密算法加密和解密字符串

from cryptography.fernet import Fernet
key = Fernet.generate_key()
cipher_suite = Fernet(key)
plaintext = "pidancode.com"
encrypted_text = cipher_suite.encrypt(plaintext.encode())
print(encrypted_text)
decrypted_text = cipher_suite.decrypt(encrypted_text).decode()
print(decrypted_text)

使用RSA非对称加密算法加密和解密字符串

from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import serialization, hashes
private_key = rsa.generate_private_key(
    public_exponent=65537,
    key_size=2048,
)
public_key = private_key.public_key()
plaintext = "皮蛋编程".encode()
encrypted_text = public_key.encrypt(
    plaintext,
    padding.OAEP(
        mgf=padding.MGF1(algorithm=hashes.SHA256()),
        algorithm=hashes.SHA256(),
        label=None
    )
)
print(encrypted_text)
decrypted_text = private_key.decrypt(
    encrypted_text,
    padding.OAEP(
        mgf=padding.MGF1(algorithm=hashes.SHA256()),
        algorithm=hashes.SHA256(),
        label=None
    )
).decode()
print(decrypted_text)

计算字符串的SHA256哈希值

from cryptography.hazmat.primitives import hashes
message = "pidancode.com".encode()
digest = hashes.Hash(hashes.SHA256())
digest.update(message)
hash_value = digest.finalize()
print(hash_value)

总之,cryptography是一个功能强大且易于使用的密码学库,提供了广泛的密码学算法和工具,可以满足许多密码学需求。

相关文章