加密 Python 字串

Vaibhhav Khetarpal 2023年1月30日
  1. 在 Python 中使用 Simple Crypt 加密字串
  2. 在 Python 中使用 cryptocode 庫加密字串
  3. 在 Python 中使用 Cryptography 包加密字串
  4. 在 Python 中使用 RSA 演算法加密字串
加密 Python 字串

加密可以定義為將純文字轉換為密文的過程。本質上,它用於對資料進行編碼。加密過程需要一個金鑰,以後可以用它來解密原始訊息。

本文將討論可用於在 Python 中加密字串的不同方法。

在 Python 中使用 Simple Crypt 加密字串

使用 Simple Crypt 模組是實現 Python 2.7 和 3 加密過程的最快和最簡單的方法。這種方法在幾秒鐘內將明文轉換為密文,只需一行程式碼。

PyCrypto 模組為此庫提供演算法實現,它使用 AES256 密碼。此方法將 HMAC 檢查與 SHA256 密碼結合在一起,以在密文被更改或修改時發出通知。

Simple Crypt 有兩個函式:encryptdecrypt。必須同時安裝 pycryptosimplecrypt 模組才能使用這兩個功能。

以下程式碼使用 simplecrypt 在 Python 中加密字串:

from simplecrypt import encrypt, decrypt

passkey = "wow"
str1 = "I am okay"
cipher = encrypt(passkey, str1)
print(cipher)

此程式碼的輸出將是一組隨機字母。

要解碼/解密密文,我們將使用以下命令:

print(decrypt("wow", cipher))

輸出:

I am okay

在 Python 中使用 cryptocode 庫加密字串

術語 cryptocode 是一個簡單的庫,它允許我們在 Python 3 或更高版本中安全且簡單地加密和解密字串。記住這個庫需要手動安裝;可以使用 pip 命令來完成。

下面的程式使用 cryptocode 庫來加密 Python 中的字串:

import cryptocode

str_encoded = cryptocode.encrypt("I am okay", "wow")
# And then to decode it:
str_decoded = cryptocode.decrypt(str_encoded, "wow")
print(str_decoded)

輸出:

I am okay

函式中的第一個引數是需要加密的字串。第二個引數需要是金鑰,用於解密目的。

在 Python 中使用 Cryptography 包加密字串

Cryptography 是一個 Python 包,可用於實現對稱金鑰加密。對稱金鑰加密是我們在編碼和解碼過程中使用相同金鑰的一種方式。

需要安裝 Cryptography 庫才能使用此方法進行加密;這可以通過使用 pip 命令來完成。

以下程式碼使用 cryptography 包函式在 Python 中加密字串:

from cryptography.fernet import Fernet

str1 = "I am okay"
key = Fernet.generate_key()

fernet = Fernet(key)

enctex = fernet.encrypt(str1.encode())

dectex = fernet.decrypt(enctex).decode()

print("The primordial string: ", str1)
print("The Encrypted message: ", enctex)
print("The Decrypted message: ", dectex)

輸出:

The primordial string: I am okay
The Encrypted message: <a stack of random letters>
The Decrypted message: I am okay

在上面的程式碼中,我們從 cryptography.fernet 模組中匯入了 Fernet。然後,我們生成將用於編碼和解碼目的的加密金鑰。Fernet 類使用加密金鑰進行例項化。然後使用 Fernet 例項對字串進行加密。最後,用 Fernet 類例項解密。

對稱金鑰加密是加密字串的一種輕鬆方式。唯一的缺點是它的安全性相對較低。任何擁有金鑰的人都可以閱讀加密文字。

在 Python 中使用 RSA 演算法加密字串

Python 中的 RSA 演算法實現了非對稱金鑰加密。非對稱金鑰加密在加密和解密過程中使用兩個不同的金鑰。

這兩個金鑰是公鑰和私鑰。公鑰是公開的,用於加密過程。任何擁有公鑰的人都可以加密和傳送資料;只有接收者擁有私鑰。此外,有權訪問它的人也可以解密資料。

需要先安裝 rsa 庫才能使用此方法。你可以使用一般的 pip 命令來安裝這個庫。

以下程式碼使用 RSA 演算法在 Python 中加密字串:

import rsa

pubkey, privkey = rsa.newkeys(512)

str1 = "I am okay"

enctex = rsa.encrypt(str1.encode(), pubkey)


dectex = rsa.decrypt(enctex, privkey).decode()
print("The primordial string: ", str1)
print("The Encrypted message: ", enctex)
print("The Decrypted message: ", dectex)

輸出:

The primordial string: I am okay
The Encrypted message: <a stack of random letters>
The Decrypted message: I am okay

在上面的程式碼中,匯入了 rsa 模組,並在 rsa.newkeys() 函式的幫助下生成了公鑰和私鑰。然後,使用 public key 對字串進行加密。然後可以僅使用私鑰解密該字串。在這個程式的情況下,公鑰和私鑰分別是 pubkeyprivkey

非對稱金鑰加密提供比對稱金鑰加密更好的安全性。與前者一樣,特定的私鑰只能由接收者訪問並用於解密目的。而後者中只有一個金鑰,這使得解密過程更容易,並且在傳送方和接收方中間受到第三方攻擊的安全性較低。

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

相關文章 - Python String

相關文章 - Python Encryption