Implementação da Criptografia de Código Claro

PythonBeginner
Pratique Agora

Introdução

Neste projeto, você aprenderá como implementar um algoritmo simples de criptografia e descriptografia chamado "Clear Code Encryption". Este método de criptografia foi usado no sistema de comunicação telegráfica inicial da China durante o final da Dinastia Qing.

👀 Pré-visualização

## Exemplo 1
numb = 1530; encryption_text = "0383"
## Exemplo 2
numb = 0; encryption_text = "9853"
## Exemplo 3
numb = 12345; encryption_text = None

🎯 Tarefas

Neste projeto, você aprenderá:

  • Como entender o método de criptografia e seus princípios subjacentes
  • Como implementar a função plain_code_encryption(numb) para realizar a criptografia
  • Como testar a função de criptografia com várias entradas
  • Como lidar com a entrada do usuário e chamar a função de criptografia

🏆 Conquistas

Após concluir este projeto, você será capaz de:

  • Explicar o método "Clear Code Encryption" e seu contexto histórico
  • Implementar um algoritmo básico de criptografia e descriptografia usando Python
  • Testar e validar a função de criptografia com diferentes cenários de entrada
  • Integrar a entrada e saída do usuário no script de criptografia

Entenda o Método de Criptografia

Nesta etapa, você aprenderá sobre o método de criptografia usado no projeto "Clear Code Encryption".

O método de criptografia funciona da seguinte forma:

  1. Os quatro dígitos do código claro são adicionados, respectivamente, aos quatro dígitos da chave de criptografia.
  2. Para cada adição de dígito, se a soma for maior ou igual a 10, omita 10 e mantenha apenas o dígito na casa das unidades.
  3. Ao descriptografar, use a senha subtraída pelos quatro dígitos da chave de descriptografia para obter o código claro e encontrar o texto correspondente.

Por exemplo, digamos que o código claro seja 1530 e a chave de criptografia seja 9853.

  1. Adicionando o primeiro dígito: 1 + 9 = 10, trate 10 como 0.
  2. Adicionando o segundo dígito: 5 + 8 = 13, omita 10 e mantenha 3.
  3. Adicionando o terceiro dígito: 3 + 5 = 8.
  4. Adicionando o quarto dígito (10 + 3 = 13, omita 10 e mantenha 3).

O texto criptografado final é "0383".

✨ Verificar Solução e Praticar

Implemente a Função plain_code_encryption(numb)

Nesta etapa, você implementará a função plain_code_encryption(numb) no arquivo plain_code.py.

  1. Abra o arquivo plain_code.py no seu editor de código.
  2. Localize a função plain_code_encryption(numb).
  3. Implemente a função para realizar as seguintes tarefas:
    • Insira um número arbitrário entre 0 e 9999 (incluindo 0 e 9999), adicione 9853 a ele e obtenha um número de 4 dígitos (no formato str) após a adição, e retorne-o.
    • Se o número de entrada tiver menos de 4 dígitos, preencha as posições ausentes com 0. Por exemplo, se o número de entrada for 32, ele precisa ser tratado como 0032.
    • Adicione os números na mesma posição. Se a soma for maior ou igual a 10, omita 10 e mantenha apenas o dígito na casa das unidades.
    • Se o número de entrada não estiver entre 0 e 9999, retorne None.

Aqui está o código completo para a função plain_code_encryption(numb):

def plain_code_encryption(numb: int) -> str:
    if numb < 0 or numb > 9999:
        return None

    numb_str = str(numb).zfill(4)
    key_str = "9853"
    encryption_text = "".join(
        str((int(n) + int(k)) % 10) for n, k in zip(numb_str, key_str)
    )

    return encryption_text
✨ Verificar Solução e Praticar

Teste a Função plain_code_encryption(numb)

Nesta etapa, você testará a função plain_code_encryption(numb) com os exemplos fornecidos.

  1. Abra o arquivo plain_code.py no seu editor de código.
  2. Adicione o seguinte código no final do arquivo:
if __name__ == "__main__":
    print(plain_code_encryption(1530))  ## Output: "0383"
    print(plain_code_encryption(0))     ## Output: "9853"
    print(plain_code_encryption(12345)) ## Output: None
  1. Salve o arquivo e execute o script usando o comando python3 plain_code.py.
  2. Verifique se a saída corresponde aos resultados esperados.
✨ Verificar Solução e Praticar

Gerenciar a Entrada do Usuário

Nesta etapa, você modificará o script para aceitar a entrada do usuário e chamar a função plain_code_encryption(numb) com o número fornecido pelo usuário.

  1. Abra o arquivo plain_code.py no seu editor de código.
  2. Localize o código que você adicionou na etapa anterior e substitua-o pelo seguinte:
if __name__ == "__main__":
    txt = int(input())
    print(plain_code_encryption(txt))
  1. Salve o arquivo e execute o script usando o comando python3 plain_code.py.
  2. Quando solicitado, insira um número entre 0 e 9999, e o script imprimirá o texto criptografado.

Parabéns! Você concluiu o projeto "Criptografia de Código Claro". Você aprendeu como implementar o método de criptografia e testá-lo com várias entradas.

✨ Verificar Solução e Praticar

Resumo

Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.