四虎国产精品永久地址998_chinesexxx少妇露脸_日本丁香久久综合国产精品_一区二区久久久久_四虎av影视_久久久久国产一区二区三区不卡

中培偉業IT資訊頻道
您現在的位置:首頁 > IT資訊 > 軟件研發 > 如何在Python中加密和解密數據

如何在Python中加密和解密數據

2020-08-07 17:40:52 | 來源:中培企業IT培訓網

加密是對信息進行編碼的過程,只有授權方才能訪問它。這一點至關重要,因為它可以安全地保護您不希望任何人看到或訪問的數據。在本文中,您將學習如何使用Python使用加密 庫對文件或任何字節對象,也包括字符串對象進行加密。我們將使用對稱加密,這意味著用于加密數據的相同密鑰也可用于解密。那里有很多加密算法,我們將使用的庫是基于AES算法構建的。

注意:了解加密和哈希算法之間的區別很重要 ,在加密中,一旦擁有密鑰,您就可以檢索原始數據,而在 哈希函數中則不能,因此,它們被稱為單向加密。

  讓我們從安裝加密開始:

pip3 install cryptography

打開一個新的Python文件,讓我們開始吧:

from cryptography.fernet import Fernet

  生成密鑰

Fernet是對稱身份驗證密碼技術的實現,讓我們首先生成該密鑰并將其寫入文件:

def write_key():

"""

Generates a key and save it into a file

"""

key = Fernet.generate_key()

with open("key.key", "wb") as key_file:

key_file.write(key)

generate_key()函數生成一個新的Fernet密鑰,您確實需要將其保存在安全的地方,如果丟失了密鑰,您將不再能夠解密使用此密鑰加密的數據。

由于此密鑰是唯一的,因此我們不會在每次加密任何內容時生成密鑰,因此我們需要一個函數來為我們加載該密鑰:

def load_key():

"""

Loads the key from the current directory named `key.key`

"""

return open("key.key", "rb").read()

  字符串加密

現在我們知道了如何獲取密鑰,讓我們從加密字符串對象開始,只是為了讓您首先熟悉它。

  生成密鑰并將其寫入文件:

# generate and write a new key

write_key()

  讓我們加載該密鑰:

# load the previously generated key

key = load_key()

  一些消息:

message = "some secret message".encode()

我們需要對字符串進行編碼,以將其轉換為適合加密的字節,encode()方法使用utf-8編解碼器對該字符串進行編碼。使用該鍵初始化Fernet類:

# initialize the Fernet class

f = Fernet(key)

  加密消息:

# encrypt the message

encrypted = f.encrypt(message)

f.encrypt()方法對傳遞的數據進行加密,這種加密的結果稱為“ Fernet令牌”,并具有強大的隱私性和真實性保證。

  讓我們看看它的外觀:

# print how it looks

print(encrypted)

  輸出:

b'gAAAAABdjSdoqn4kx6XMw_fMx5YT2eaeBBCEue3N2FWHhlXjD6JXJyeELfPrKf0cqGaYkcY6Q0bS22ppTBsNTNw2fU5HVg-c-0o-KVqcYxqWAIG-LVVI_1U='

  解密:

decrypted_encrypted = f.decrypt(encrypted)

print(decrypted_encrypted)

b'some secret message'

的確是同一條信息。

f.decrypt()方法解密Fernet令牌。成功解密后,這將返回原始明文作為結果,否則將引發異常。

關于如何在Python中加密和解密數據的問題,通過上述閱讀,想必大家已經清楚了吧,想了解更多關于Python的信息,請繼續關注中培偉業。

標簽: Python 軟件研發
主站蜘蛛池模板: 东台市| 博湖县| 大新县| 车险| 武宁县| 嘉定区| 汝城县| 望都县| 湘潭县| 丰镇市| 剑河县| 河源市| 北海市| 临清市| 安西县| 唐山市| 宁安市| 福清市| 平舆县| 公安县| 厦门市| 西青区| 广河县| 松潘县| 德令哈市| 高台县| 普宁市| 吴江市| 宜川县| 黑河市| 溆浦县| 和田市| 周口市| 太湖县| 广河县| 城固县| 栖霞市| 绍兴县| 万荣县| 东乡| 南昌县|