Cripta una stringa Python

Vaibhhav Khetarpal 11 luglio 2021
  1. Usa Simple Crypt per crittografare una stringa in Python
  2. Usa la libreria cryptocode per crittografare una stringa in Python
  3. Usa il pacchetto Cryptography per crittografare una stringa in Python
  4. Usa l’algoritmo RSA per crittografare una stringa in Python
Cripta una stringa Python

La crittografia può essere definita come il processo che trasforma il testo normale in testo cifrato. Essenzialmente, è usato per codificare i dati. Il processo di crittografia richiede una chiave, che può essere utilizzata in seguito per decrittografare il messaggio originale.

Questo articolo discuterà i diversi metodi che puoi utilizzare per crittografare una stringa in Python.

Usa Simple Crypt per crittografare una stringa in Python

L’utilizzo del modulo Simple Crypt è il modo più rapido e semplice per ottenere il processo di crittografia per Python 2.7 e 3. Questo metodo converte il testo in chiaro in un testo cifrato in pochi secondi, con l’aiuto di una singola riga di codice.

Il modulo PyCrypto fornisce l’implementazione dell’algoritmo per questa libreria e utilizza il cifrario AES256. Questo metodo incorpora un controllo HMAC con il cifrario SHA256 per notificare quando il testo cifrato viene alterato o modificato.

Simple Crypt ha due funzioni: encrypt e decrypt. È essenziale installare entrambi i moduli pycrypto e simplecrypt per utilizzare entrambe queste funzioni.

Il codice seguente usa simplecrypt per crittografare una stringa in Python:

from simplecrypt import encrypt, decrypt

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

L’output di questo codice sarebbe un gruppo di lettere casuali.

Per decodificare/decrittografare il testo cifrato, utilizzeremo il seguente comando:

print(decrypt("wow", cipher))

Produzione:

I am okay

Usa la libreria cryptocode per crittografare una stringa in Python

Il termine cryptocode è una semplice libreria che ci consente di crittografare e decrittografare le stringhe in modo sicuro e semplice in Python 3 o versioni successive. Ricorda che questa libreria deve essere installata manualmente; può essere fatto usando il comando pip.

Il programma seguente utilizza la libreria cryptocode per crittografare una stringa in 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)

Produzione:

I am okay

Il primo parametro nella funzione sarebbe la stringa che deve essere crittografata. Il secondo parametro deve essere la chiave, che verrà utilizzata per la decrittazione.

Usa il pacchetto Cryptography per crittografare una stringa in Python

Cryptography è un pacchetto Python che può essere utilizzato per ottenere la crittografia a chiave simmetrica. La crittografia a chiave simmetrica è un modo in cui utilizziamo la stessa chiave per il processo di codifica e decodifica.

La libreria Cryptography deve essere installata per poter utilizzare questo metodo di crittografia; questo può essere fatto usando il comando pip.

Il codice seguente utilizza le funzioni del pacchetto cryptography per crittografare una stringa in 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)

Produzione:

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

Nel codice sopra, importiamo Fernet dal modulo cryptography.fernet. Quindi, generiamo una chiave di crittografia che verrà utilizzata sia per la codifica che per la decodifica. La classe Fernet viene istanziata con la chiave di crittografia. La stringa viene quindi crittografata con l’istanza Fernet. Infine, viene decifrato con l’istanza della classe Fernet.

La crittografia a chiave simmetrica è un modo semplice per crittografare una stringa. L’unico inconveniente è che è relativamente meno sicuro. Chiunque disponga della chiave può leggere il testo crittografato.

Usa l’algoritmo RSA per crittografare una stringa in Python

L’algoritmo RSA in Python implementa la crittografia a chiave asimmetrica. La crittografia a chiave asimmetrica utilizza due chiavi diverse per il processo di crittografia e decrittografia.

Queste due chiavi sono la chiave privata e la chiave pubblica. La chiave pubblica è pubblica e viene utilizzata per il processo di crittografia. Chiunque disponga della chiave pubblica può crittografare e inviare i dati; solo il destinatario ha la chiave privata. Inoltre, qualcuno con accesso ad esso può anche decrittografare i dati.

La libreria rsa deve essere prima installata per utilizzare questo metodo. È possibile utilizzare il comando generale pip per l’installazione di questa libreria.

Il codice seguente utilizza l’algoritmo RSA per crittografare una stringa in 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)

Produzione:

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

Nel codice sopra, viene importato il modulo rsa e le chiavi pubblica e privata vengono generate con l’aiuto della funzione rsa.newkeys(). Quindi, la stringa viene crittografata utilizzando la chiave pubblica. La stringa può quindi essere decifrata utilizzando solo la chiave privata. Le chiavi pubbliche e private nel caso di questo programma sono rispettivamente pubkey e privkey.

La crittografia a chiave asimmetrica offre una sicurezza migliore rispetto alla crittografia a chiave simmetrica. Come nel primo, una specifica chiave privata è accessibile solo al destinatario e viene utilizzata a scopo di decrittazione. Considerando che esiste solo una chiave in quest’ultimo, rendendo il processo di decrittazione più facile e meno sicuro da attacchi da parte di terzi nel mezzo del mittente e del destinatario.

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

Articolo correlato - Python String