加密 Python 字串
-
在 Python 中使用
Simple Crypt
加密字串 -
在 Python 中使用
cryptocode
庫加密字串 -
在 Python 中使用
Cryptography
包加密字串 -
在 Python 中使用
RSA
演算法加密字串
加密可以定義為將純文字轉換為密文的過程。本質上,它用於對資料進行編碼。加密過程需要一個金鑰,以後可以用它來解密原始訊息。
本文將討論可用於在 Python 中加密字串的不同方法。
在 Python 中使用 Simple Crypt
加密字串
使用 Simple Crypt
模組是實現 Python 2.7 和 3 加密過程的最快和最簡單的方法。這種方法在幾秒鐘內將明文轉換為密文,只需一行程式碼。
PyCrypto
模組為此庫提供演算法實現,它使用 AES256
密碼。此方法將 HMAC
檢查與 SHA256
密碼結合在一起,以在密文被更改或修改時發出通知。
Simple Crypt
有兩個函式:encrypt
和 decrypt
。必須同時安裝 pycrypto
和 simplecrypt
模組才能使用這兩個功能。
以下程式碼使用 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
對字串進行加密。然後可以僅使用私鑰解密該字串。在這個程式的情況下,公鑰和私鑰分別是 pubkey
和 privkey
。
非對稱金鑰加密提供比對稱金鑰加密更好的安全性。與前者一樣,特定的私鑰只能由接收者訪問並用於解密目的。而後者中只有一個金鑰,這使得解密過程更容易,並且在傳送方和接收方中間受到第三方攻擊的安全性較低。
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 中從字串中刪除逗號
- 在 Python 中將字串轉換為變數名
- Python 如何去掉字串中的空格/空白符
- 如何在 Python 中從字串中提取數字
- Python 如何將字串轉換為時間日期 datetime 格式
- Python2 和 3 中如何將(Unicode)字串轉換為小寫