Implementando a Cifra de César

PythonBeginner
Pratique Agora

Introdução

Neste projeto, você aprenderá como implementar a Cifra de César (Caesar Cipher), uma técnica de criptografia simples e amplamente conhecida. A Cifra de César utiliza um método de substituição para substituir caracteres ingleses em uma mensagem pelo caractere N posições depois ou antes na sequência do alfabeto.

👀 Pré-visualização

## Exemplo 1
text = "python"; encryption_text = "ravjqp"
## Exemplo 2
text = "pyThon"; encryption_text = "raVjqp"
## Exemplo 3
text = "Python31"; encryption_text = "Ravjqp31"
## Exemplo 4
text = None; encryption_text = None

🎯 Tarefas

Neste projeto, você aprenderá:

  • Como configurar o ambiente do projeto e criar os arquivos necessários
  • Como implementar a função de Criptografia de César para deslocar cada caractere inglês em uma string 2 posições para a direita
  • Como lidar com diferentes tipos de entrada, incluindo caracteres ingleses, caracteres não ingleses e valores nulos
  • Como testar a função de Criptografia de César com vários exemplos de entrada

🏆 Conquistas

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

  • Compreender os princípios básicos da técnica de criptografia Cifra de César
  • Implementar uma função de Criptografia de César em Python sem usar nenhuma biblioteca padrão ou de terceiros
  • Desenvolver habilidades em manipulação de strings, codificação de caracteres e lógica condicional
  • Testar seu código para garantir que ele atenda aos requisitos do projeto

Implemente a Criptografia de César

Nesta etapa, você implementará a função de Criptografia de César.

  1. Abra o arquivo caesar_cipher.py.

  2. Modifique a função caesar_encryption(text) para alcançar a funcionalidade desejada:

    • Receber uma string como entrada e deslocar cada caractere inglês na string 2 posições para a direita.
    • Converter apenas caracteres ingleses de meia largura, deixando o restante do conteúdo inalterado.
    • A capitalização dos caracteres deve permanecer inalterada, por exemplo, A será convertido em C, e b será convertido em d.
  3. Substitua o comentário """TODO""" pelo seguinte código:

def caesar_encryption(text: str) -> str:
    if text is None:
        return None
    encryption_text = ""
    for char in text:
        if char.isalpha() and char.isascii():
            if char.islower():
                encryption_text += chr((ord(char) - ord("a") + 2) % 26 + ord("a"))
            else:
                encryption_text += chr((ord(char) - ord("A") + 2) % 26 + ord("A"))
        else:
            encryption_text += char
    return encryption_text

Este código implementa o algoritmo de Criptografia de César conforme descrito nos requisitos do projeto.

✨ Verificar Solução e Praticar

Teste a Criptografia de César

Nesta etapa, você testará a função de Criptografia de César com algumas entradas de exemplo.

  1. Adicione o seguinte código ao final do arquivo caesar_cipher.py:
if __name__ == "__main__":
    test_input_text = input()
    print(caesar_encryption(test_input_text))
  1. Salve o arquivo caesar_cipher.py.
  2. Abra um terminal e navegue até o diretório /home/labex/project.
  3. Execute o script caesar_cipher.py usando o seguinte comando:
python3 caesar_cipher.py
  1. Insira algum texto de entrada de teste e observe a saída criptografada.
✨ Verificar Solução e Praticar

Verificar os Requisitos

Nesta etapa, você verificará se sua implementação atende aos requisitos do projeto.

  1. Revise os requisitos do projeto e certifique-se de que sua função caesar_encryption(text):

    • Recebe uma string como entrada e desloca cada caractere inglês na string 2 posições para a direita.
    • Converte apenas caracteres ingleses de meia largura, deixando o restante do conteúdo inalterado.
    • Preserva a capitalização dos caracteres, por exemplo, A é convertido em C, e b é convertido em d.
  2. Teste sua função com os exemplos de referência fornecidos:

## Exemplo 1
text = "python"; encryption_text = "ravjqp"
## Exemplo 2
text = "pyThon"; encryption_text = "raVjqp"
## Exemplo 3
text = "Python31"; encryption_text = "Ravjqp31"
## Exemplo 4
text = None; encryption_text = None
  1. Certifique-se de que sua função lida corretamente com todos os casos de teste.

Parabéns! Você concluiu o projeto Cifra de César. Se tiver alguma dúvida ou precisar de mais assistência, não hesite em perguntar.

✨ Verificar Solução e Praticar

Resumo

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