Índice:

Software de criptografia / descriptografia de segurança Python: 3 etapas
Software de criptografia / descriptografia de segurança Python: 3 etapas

Vídeo: Software de criptografia / descriptografia de segurança Python: 3 etapas

Vídeo: Software de criptografia / descriptografia de segurança Python: 3 etapas
Vídeo: Operações com Strings e Criptografia | Python para Iniciantes #11 2024, Maio
Anonim
Software de criptografia / descriptografia de segurança Python
Software de criptografia / descriptografia de segurança Python
Software de criptografia / descriptografia de segurança Python
Software de criptografia / descriptografia de segurança Python

Neste Instructable, mostrarei como, com alguns Python simples, você pode manter seus arquivos seguros usando AES padrão da indústria.

Requisitos:

- Python 3.7

- Biblioteca PyAesCrypt

- biblioteca hashlib

Se você não tiver essas bibliotecas, poderá instalar facilmente digitando:

pip3 install hashlib

pip3 instalar PyAesCrypt

no terminal (ou CMD)

Você já deve ter estes:

- biblioteca aleatória

- biblioteca de sistemas operacionais

- biblioteca do sistema

Estou usando o OS X, mas não deve importar muito, exceto pela direção das barras nos caminhos dos arquivos (OS X: /, Windows:)

Observação: devido a alguma falha, as indentações no código não aparecem por algum motivo. Consequentemente, não haverá recuos no código exibido, no entanto, eles estão presentes nos arquivos Python que anexei no final e nas imagens incluídas. Só não pegue o código diretamente do texto exibido, pois não funcionará devido à falta de indentações

Se você tiver todas as dependências instaladas, vamos prosseguir para a Etapa 1.

Etapa 1: Gravando o arquivo de configuração

Gravando o arquivo de configuração
Gravando o arquivo de configuração
Gravando o arquivo de configuração
Gravando o arquivo de configuração
Gravando o arquivo de configuração
Gravando o arquivo de configuração
Gravando o arquivo de configuração
Gravando o arquivo de configuração

Um dos fatores que tornam isso tão seguro é o uso de hashes para verificar a senha. O arquivo de configuração (estou chamando meu setupsafe.py) vai:

- Crie uma pasta e arquivos fictícios para a senha

- Defina a senha

- Defina o número do arquivo

- Hash a senha

Primeiro, vamos importar nossas dependências:

da importação sys *

importar os

importar aleatório

importar hashlib

Em seguida, criaremos uma pasta para armazenar o hash da senha e os arquivos fictícios:

tente: se não os.path.exists ('desktop / safesetup'):

os.mkdir ('desktop / safesetup /')

exceto OSError:

imprimir ("Erro ao criar pasta")

Este código criará uma pasta chamada safesetup (a menos que já exista).

Depois disso, vamos definir a senha e gerar um número aleatório entre 1 e 100 como nossa forma de navegar pelos arquivos fictícios:

global passwordpassword = argv [1].encode ('utf-8')

n = random.randint (1, 101)

Agora que temos nossa senha e nosso número de arquivo, vamos criar 99 arquivos fictícios dentro do safesetup e um arquivo real que conterá nosso hash de senha:

para x no intervalo (101): if (x! = n):

f = open (("desktop / safesetup /" + str (x)), "w +")

f.close ()

outro:

senha = hashlib.sha256 (senha).hexdigest ()

f = open (("desktop / safesetup /" + str (x)), "w +")

f.write (senha)

f.close ()

imprimir (n)

O arquivo real é chamado de qualquer número inteiro n. Este arquivo contém nossa senha, depois de ser hash usando o algoritmo sha256 (este algoritmo hash é amplamente usado em criptomoedas, mais notavelmente Bitcoin).

Lembre-se do que é n (será impresso no console), pois é tão importante quanto a senha.

Isso é tudo de que precisamos para nosso programa de configuração, portanto, vamos agora passar para o programa de criptografia / descriptografia.

Etapa 2: o arquivo de criptografia / descriptografia

O arquivo de criptografia / descriptografia
O arquivo de criptografia / descriptografia
O arquivo de criptografia / descriptografia
O arquivo de criptografia / descriptografia
O arquivo de criptografia / descriptografia
O arquivo de criptografia / descriptografia

A seção de configuração do arquivo principal importa as dependências, faz o hash da senha inserida e recupera o hash da senha real usando o número do arquivo inserido.

Primeiro, as dependências:

from sys import * import os

import pyAesCrypt

importar hashlib

Em seguida, o hash da senha inserida:

senha = argv [1].encode ('utf-8') senha = hashlib.sha256 (senha).hexdigest ()

Finalmente, a recuperação da senha com hash:

file_key = str (argv [2]) hash = open (("desktop / safesetup /" + file_key), ("r +")). read ()

A segunda seção do arquivo de criptografia compara os hashes, determina a veracidade da comparação e usa a biblioteca Python AESCrypt para criptografar ou descriptografar o arquivo de sua escolha. Este é um pedaço de código bastante grande, mas vou decompô-lo:

if (senha == hash): print ("Senha aceita")

bufferSize = 64 * 1024

operation = str (input ("Você está recuperando ou criptografando arquivos? (r ou e)"))

if (operação == 'r'):

file_name = str (input ("Arquivo a ser recuperado:"))

pyAesCrypt.decryptFile ((file_name + ".aes"), file_name, password, bufferSize)

os.remove ((file_name + ".aes"))

elif (operação == 'e'):

file_name = str (input ("Arquivo para criptografar:"))

pyAesCrypt.encryptFile (file_name, (file_name + ".aes"), senha, bufferSize)

os.remove (file_name)

outro:

imprimir ("Erro: entrada incorreta")

outro:

imprimir ("Acesso negado")

A primeira instrução if determina se as senhas com hash correspondem. Em caso afirmativo, ele pergunta se você deseja criptografar arquivos ou recuperar arquivos criptografados. Dependendo da sua entrada, ele irá criptografar ou descriptografar o arquivo fornecido. Quando solicitado a fornecer o nome do arquivo, certifique-se de especificar o caminho, a menos que o arquivo esteja no mesmo diretório do programa python. O programa exclui o arquivo em seu estado anterior, substituindo-o por um arquivo.aes criptografado ou descriptografando-o e substituindo-o pelo arquivo original.

No futuro, posso atualizar isso para incluir o reconhecimento facial usando a biblioteca Python OpenCV, mas por enquanto as senhas terão que ser suficientes.

Etapa 3: Operação de arquivos

Para executar o arquivo de instalação, siga estas etapas:

1. Digite o terminal:

diretório python3 / setupname.py senha (substituindo diretório, setupname e senha com seus respectivos valores)

2. O terminal exibirá o número do seu arquivo. Mantenha isso.

Para executar o programa de criptografia / descriptografia, siga estas etapas:

1. Digite o terminal:

python3 directory / filename.py password filenumber (substituindo diretório, nome de arquivo, senha e filenumber por seus respectivos valores)

2. O terminal irá então aceitar ou rejeitar sua senha. Se rejeitado, tente novamente e certifique-se de digitar os valores corretos. Assim que o acesso for concedido, o terminal perguntará se você deseja criptografar ou recuperar um arquivo. Para criptografar um arquivo, digite e, e para recuperar um arquivo criptografado, digite r.

3. Será solicitado que você forneça o nome do arquivo. Lembre-se de fornecer o diretório do arquivo, bem como o nome, e também a extensão do arquivo. No entanto, se você estiver descriptografando um arquivo, não digite a parte.aes da extensão, pois o código é responsável por isso.

4. O programa então criptografa ou descriptografa o arquivo fornecido e exclui o arquivo em seu estado anterior (mantendo o arquivo criptografado ou descriptografado).

Voila! Obrigado por chegar tão longe no instrutível, eu sei que ler tutoriais de código não é a coisa mais divertida. Os arquivos python estão incluídos nesta etapa, para aqueles que desejam experimentar. Mais uma vez, obrigado pela leitura e desejo-lhe boa sorte em seus esforços futuros de codificação.

Recomendado: