亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

Python加密與解密如何實現

小樊
82
2024-11-02 19:21:37
欄目: 編程語言

在Python中,加密和解密可以通過多種方式實現。這里我將向您展示如何使用cryptography庫進行簡單的加密和解密操作。cryptography庫是一個功能強大的加密庫,支持對稱加密和非對稱加密算法。

首先,確保您已經安裝了cryptography庫。如果沒有,請使用以下命令安裝:

pip install cryptography

接下來,我們將使用Fernet對稱加密算法進行加密和解密。以下是示例代碼:

from cryptography.fernet import Fernet

# 生成密鑰
def generate_key():
    return Fernet.generate_key()

# 加密
def encrypt(message, key):
    f = Fernet(key)
    encrypted_message = f.encrypt(message.encode())
    return encrypted_message

# 解密
def decrypt(encrypted_message, key):
    f = Fernet(key)
    decrypted_message = f.decrypt(encrypted_message).decode()
    return decrypted_message

# 示例
key = generate_key()
message = "Hello, World!"

encrypted_message = encrypt(message, key)
print("Encrypted message:", encrypted_message)

decrypted_message = decrypt(encrypted_message, key)
print("Decrypted message:", decrypted_message)

在這個示例中,我們首先生成一個密鑰,然后使用該密鑰對消息進行加密和解密。請注意,密鑰在加密和解密過程中必須保持一致。

除了對稱加密,您還可以使用非對稱加密算法,如RSA。以下是使用RSA進行加密和解密的示例代碼:

from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import serialization, hashes

# 生成RSA密鑰對
def generate_rsa_key_pair():
    private_key = rsa.generate_private_key(
        public_exponent=65537,
        key_size=2048,
    )
    public_key = private_key.public_key()
    return private_key, public_key

# 加密
def encrypt_rsa(message, public_key):
    encrypted_message = public_key.encrypt(
        message.encode(),
        padding.OAEP(
            mgf=padding.MGF1(algorithm=hashes.SHA256()),
            algorithm=hashes.SHA256(),
            label=None,
        )
    )
    return encrypted_message

# 解密
def decrypt_rsa(encrypted_message, private_key):
    decrypted_message = private_key.decrypt(
        encrypted_message,
        padding.OAEP(
            mgf=padding.MGF1(algorithm=hashes.SHA256()),
            algorithm=hashes.SHA256(),
            label=None,
        )
    )
    return decrypted_message.decode()

# 示例
private_key, public_key = generate_rsa_key_pair()
message = "Hello, World!"

encrypted_message = encrypt_rsa(message, public_key)
print("Encrypted message:", encrypted_message)

decrypted_message = decrypt_rsa(encrypted_message, private_key)
print("Decrypted message:", decrypted_message)

在這個示例中,我們首先生成一個RSA密鑰對,然后使用公鑰進行加密,私鑰進行解密。請注意,RSA加密通常用于加密較小的數據,因為加密較大的數據可能會導致性能下降。對于大文件加密,通常建議使用對稱加密算法,然后使用RSA加密對稱密鑰。

0
盘锦市| 旬阳县| 沅陵县| 井研县| 南木林县| 丰都县| 河源市| 邯郸县| 隆子县| 北票市| 镇平县| 哈密市| 呼伦贝尔市| 屏东市| 绥中县| 寿宁县| 平遥县| 开原市| 无锡市| 浦城县| 彭泽县| 马鞍山市| 太保市| 申扎县| 阿克苏市| 广河县| 仁化县| 焉耆| 綦江县| 榆社县| 南木林县| 海伦市| 武山县| 即墨市| 宣武区| 邵阳县| 枞阳县| 济源市| 吉安县| 神农架林区| 阜康市|