Python之?dāng)?shù)據(jù)加密與解密及相關(guān)操作

小云
108
2024-02-02 18:02:54

在Python中,可以使用cryptography庫(kù)來(lái)進(jìn)行數(shù)據(jù)加密和解密操作。下面是一個(gè)簡(jiǎn)單的示例:

from cryptography.fernet import Fernet

# 生成密鑰
def generate_key():
    key = Fernet.generate_key()
    with open('key.key', 'wb') as key_file:
        key_file.write(key)

# 讀取密鑰
def load_key():
    return open('key.key', 'rb').read()

# 加密數(shù)據(jù)
def encrypt_data(data, key):
    f = Fernet(key)
    encrypted_data = f.encrypt(data.encode())
    return encrypted_data

# 解密數(shù)據(jù)
def decrypt_data(data, key):
    f = Fernet(key)
    decrypted_data = f.decrypt(data).decode()
    return decrypted_data

# 生成密鑰
generate_key()

# 讀取密鑰
key = load_key()

# 加密數(shù)據(jù)
encrypted_data = encrypt_data("Hello, world!", key)
print("加密后的數(shù)據(jù):", encrypted_data)

# 解密數(shù)據(jù)
decrypted_data = decrypt_data(encrypted_data, key)
print("解密后的數(shù)據(jù):", decrypted_data)

在上面的示例中,我們首先使用generate_key函數(shù)生成一個(gè)密鑰,并保存到文件key.key中。然后使用load_key函數(shù)讀取該密鑰。

encrypt_data函數(shù)使用密鑰對(duì)數(shù)據(jù)進(jìn)行加密,并返回加密后的數(shù)據(jù)。decrypt_data函數(shù)使用密鑰對(duì)加密后的數(shù)據(jù)進(jìn)行解密,并返回解密后的數(shù)據(jù)。

最后,我們使用生成的密鑰對(duì)字符串"Hello, world!"進(jìn)行加密和解密操作,并輸出結(jié)果。

請(qǐng)注意,在實(shí)際應(yīng)用中,密鑰的保存和管理是非常重要的。密鑰的泄露可能會(huì)導(dǎo)致數(shù)據(jù)的泄露或被攻擊者惡意篡改。因此,應(yīng)該采取相應(yīng)的安全措施來(lái)保護(hù)密鑰的安全。

0