Listar ficheros de video y obtener resolución, útiles DASH mpd
30 de marzo de 2024Reconocimiento facial con cv2 y face_recognition
25 de junio de 2024Implementación genérica.
1.- Generamos un archivo con llave, que será la que utilizaremos para encriptar nuestro archivo con el dato a proteger (password).
from cryptography.fernet import Fernet
# key generation
key = Fernet.generate_key()
# string the key in a file
with open('filekey.key', 'wb') as filekey:
filekey.write(key)
2.- Encriptamos el archivo ejemplo nba.csv (podéis utilizar cualquier archivo con cualquier dato en texto plano, csv, etc) deseado utilizando la llave almacenada en nuestro archivo filekey.key
from cryptography.fernet import Fernet
# opening the key
with open('filekey.key', 'rb') as filekey:
key = filekey.read()
# using the generated key
fernet = Fernet(key)
# opening the original file to encrypt
with open('nba.csv', 'rb') as file:
original = file.read()
# encrypting the file
encrypted = fernet.encrypt(original)
# opening the file in write mode and
# writing the encrypted data
with open('nba.csv', 'wb') as encrypted_file:
encrypted_file.write(encrypted)
3.- Proceso para desencriptar el archivo previamente encriptado.
from cryptography.fernet import Fernet
# using the key
fernet = Fernet(key)
# opening the encrypted file
with open('nba.csv', 'rb') as enc_file:
encrypted = enc_file.read()
# decrypting the file
decrypted = fernet.decrypt(encrypted) #Ahora el contenido descifrado se encuentra en esta variable
# opening the file in write mode and writing the decrypted data
with open('nba.csv', 'wb') as dec_file:
dec_file.write(decrypted)
Implementación dentro de un script Python, leeyendo un fichero con password encriptada para usarla como variable
Declaramos la función dentro del script
def read_pass():
from cryptography.fernet import Fernet
#Abrimos el fichero llave y la cargamos en la variable key
with open('filekey.key', 'rb') as filekey:
key = filekey.read()
fernet = Fernet(key)
#Abrimos y leemos nuestro archivo encriptado
with open('pass_file', 'rb') as enc_file:
encrypted = enc_file.read()
#Ahora el contenido descifrado se encuentra en esta variable
my_decrypt_pass = fernet.decrypt(encrypted)
#La función devuelve la contraseña desencriptada
return my_decrypt_pass
#Almacenamos la contraseña en la variable my_pass y la utilizamos dentro del script
my_pass = read_pass()
Artículo fuente original:
https://www.geeksforgeeks.org/encrypt-and-decrypt-files-using-python/