Tabla de contenido:
- Paso 1: escribir el archivo de configuración
- Paso 2: el archivo de cifrado / descifrado
- Paso 3: Operación de archivos
Video: Software de cifrado / descifrado de seguridad Python: 3 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
En este Instructable, le mostraré cómo con un Python simple, puede mantener sus archivos seguros usando AES estándar de la industria.
Requerimientos:
- Python 3.7
- Biblioteca PyAesCrypt
- biblioteca hashlib
Si no tiene estas bibliotecas, puede instalarlas fácilmente escribiendo:
pip3 instalar hashlib
pip3 instalar PyAesCrypt
en la terminal (o CMD)
Ya deberías tener estos:
- biblioteca aleatoria
- biblioteca del sistema operativo
- biblioteca del sistema
Estoy usando OS X, pero no debería importar demasiado, excepto por la dirección de las barras en las rutas de los archivos (OS X: /, Windows:)
Tenga en cuenta: debido a algún problema técnico, las sangrías en el código no se muestran por alguna razón. En consecuencia, no habrá sangrías en el código mostrado, sin embargo, están presentes en los archivos de Python que he adjuntado al final y en las imágenes adjuntas. Simplemente no tome el código directamente del texto mostrado, porque no funcionará debido a la falta de sangrías
Si tiene todas las dependencias instaladas, pasemos al Paso 1.
Paso 1: escribir el archivo de configuración
Uno de los factores que hace que esto sea tan seguro es el uso de hash para verificar la contraseña. El archivo de configuración (estoy llamando al mío setupsafe.py) va a:
- Cree una carpeta y archivos ficticios para la contraseña
- Establecer la contraseña
- Establecer el número de archivo
- Hash la contraseña
En primer lugar, vamos a importar nuestras dependencias:
desde sys import *
importar sistema operativo
importar al azar
importar hashlib
A continuación, crearemos una carpeta para albergar el hash de la contraseña y los archivos ficticios:
intente: si no es os.path.exists ('desktop / safesetup'):
os.mkdir ('escritorio / safesetup /')
excepto OSError:
imprimir ("Error al crear la carpeta")
Este código creará una carpeta llamada safesetup (a menos que ya exista).
Después de esto, vamos a establecer la contraseña y generar un número aleatorio entre 1 y 100 como nuestra forma de navegar por los archivos ficticios:
contraseña global contraseña = argv [1].encode ('utf-8')
n = random.randint (1, 101)
Ahora que tenemos nuestra contraseña y nuestro número de archivo, vamos a crear 99 archivos ficticios dentro de safesetup, y un archivo real que contendrá nuestro hash de contraseña:
para x en el rango (101): si (x! = n):
f = abierto (("escritorio / configuración segura /" + str (x)), "w +")
f.close ()
demás:
contraseña = hashlib.sha256 (contraseña).hexdigest ()
f = abierto (("escritorio / configuración segura /" + str (x)), "w +")
f.write (contraseña)
f.close ()
imprimir (n)
El archivo real se llama cualquier número entero n. Este archivo contiene nuestra contraseña, después de haber sido hash utilizando el algoritmo sha256 (este algoritmo hash se usa ampliamente en las criptomonedas, sobre todo en Bitcoin).
Recuerde lo que es n (se imprimirá en la consola), ya que es tan importante como la contraseña.
Eso es todo lo que necesitamos para nuestro programa de instalación, por lo que ahora pasaremos al programa de cifrado / descifrado.
Paso 2: el archivo de cifrado / descifrado
La sección de configuración del archivo principal importa las dependencias, aplica un hash a la contraseña ingresada y recupera el hash de la contraseña real utilizando el número de archivo ingresado.
Primero, las dependencias:
desde sys import * import os
importar pyAesCrypt
importar hashlib
A continuación, el hash de la contraseña ingresada:
contraseña = argv [1].encode ('utf-8') contraseña = hashlib.sha256 (contraseña).hexdigest ()
Finalmente, la recuperación de contraseña hash:
file_key = str (argv [2]) hash = open (("escritorio / configuración segura /" + file_key), ("r +")). read ()
La segunda sección del archivo de cifrado compara los valores hash, determina la veracidad de la comparación y utiliza la biblioteca de Python AESCrypt para cifrar o descifrar el archivo de su elección. Este es un fragmento de código bastante grande, pero lo desglosaré:
if (contraseña == hash): print ("Contraseña aceptada")
bufferSize = 64 * 1024
operación = str (input ("¿Está recuperando o encriptando archivos? (r o e)"))
si (operación == 'r'):
file_name = str (input ("Archivo para recuperar:"))
pyAesCrypt.decryptFile ((nombre_archivo + ".aes"), nombre_archivo, contraseña, bufferSize)
os.remove ((nombre_archivo + ".aes"))
elif (operación == 'e'):
file_name = str (input ("Archivo para cifrar:"))
pyAesCrypt.encryptFile (nombre_archivo, (nombre_archivo + ".aes"), contraseña, bufferSize)
os.remove (nombre_archivo)
demás:
print ("Error: entrada incorrecta")
demás:
imprimir ("Acceso denegado")
La primera instrucción if determina si las contraseñas con hash coinciden. Si es así, continúa preguntando si desea cifrar archivos o recuperar archivos cifrados. Dependiendo de su entrada, cifrará o descifrará el archivo proporcionado. Cuando se le solicite que proporcione el nombre del archivo, asegúrese de especificar la ruta a menos que el archivo esté en el mismo directorio que el programa Python. El programa elimina el archivo en su estado anterior, reemplazándolo con un archivo.aes encriptado, o descifrándolo y reemplazándolo con el archivo original.
En el futuro, podría actualizar esto para incluir el reconocimiento facial usando la biblioteca Python OpenCV, pero por ahora las contraseñas serán suficientes.
Paso 3: Operación de archivos
Para ejecutar el archivo de instalación, siga estos pasos:
1. Escriba en la terminal:
Python3 directorio / nombredeconfiguración.py contraseña (reemplazando directorio, nombredeconfiguración y contraseña con sus respectivos valores)
2. El terminal generará su número de archivo. Guarda esto.
Para ejecutar el programa de cifrado / descifrado, siga estos pasos:
1. Escriba en la terminal:
python3 directorio / nombre de archivo.py contraseña número de archivo (reemplazando directorio, nombre de archivo, contraseña y número de archivo con sus respectivos valores)
2. El terminal aceptará o rechazará su contraseña. Si es rechazado, intente nuevamente y asegúrese de ingresar los valores correctos. Una vez que se ha concedido el acceso, el terminal le preguntará si desea cifrar un archivo o recuperar un archivo. Para cifrar un archivo, escriba e, y para recuperar un archivo cifrado, escriba r.
3. A continuación, se le pedirá que proporcione el nombre del archivo. Recuerde proporcionar el directorio del archivo, así como el nombre y también la extensión del archivo. Sin embargo, si está descifrando un archivo, no escriba la parte.aes de la extensión, ya que el código lo explica.
4. A continuación, el programa cifra o descifra el archivo proporcionado y elimina el archivo en su estado anterior (conservando el archivo cifrado o descifrado).
¡Voila! Gracias por llegar tan lejos en el instructable, sé que leer tutoriales de código no es lo más entretenido. Los archivos de Python se incluyen en este paso, para aquellos de ustedes que quieran darle una oportunidad. Una vez más, gracias por leer y les deseo la mejor de las suertes en sus futuros esfuerzos de codificación.
Recomendado:
Programa de cifrado Caesar en Python: 4 pasos
Programa de cifrado Caesar en Python: El cifrado Caesar es un cifrado antiguo y ampliamente utilizado que es fácil de cifrar y descifrar. Funciona cambiando las letras del alfabeto para crear un alfabeto completamente nuevo (ABCDEF podría cambiar más de 4 letras y se convertiría en EFGHIJ). Caesar C
Cómo descargar software gratuito como estudiante de ISU (Microsoft, Adobe y software de seguridad: 24 pasos
Cómo descargar software gratuito como estudiante de ISU (Microsoft, Adobe y software de seguridad: para Adobe: vaya al paso 1 Para Microsoft: vaya al paso 8 Para seguridad: vaya al paso 12 Para Azure: vaya al paso 16
Botón de seguridad inalámbrico para la seguridad del PLC: 6 pasos (con imágenes)
Botón de seguridad inalámbrico para seguridad de PLC: este proyecto es mi prueba de concepto para usar IoT y (eventualmente) robótica para crear una capa adicional de seguridad para instalaciones de fabricación peligrosas. Este botón se puede utilizar para iniciar o detener múltiples procesos, incluido el control de la señal
Convierta un Memory Stick antiguo en un banco de datos con cifrado de grado gubernamental: 4 pasos
Convierta una tarjeta de memoria vieja en un banco de datos con cifrado de grado gubernamental: ¿Tiene una tarjeta de memoria vieja? ¿Tiene archivos valiosos que necesita proteger? Descubra cómo proteger sus archivos mejor que un simple archivo RAR con contraseña; porque en esta era moderna, cualquier persona con una buena PC puede descifrarla en menos de un día. Estoy usando una memoria de 32 MB
Cifrado Vigenere con Arduino: 3 pasos
Vigenere Cipher con Arduino: Hace unos años, Digital Fortress de Dan Brown me llamó la atención y una cosa en particular se quedó en mi mente. Kryptos, la escultura de Jim Sanborn que consta de texto cifrado cuyas dos primeras partes están cifradas por Vigen è re cipher. I