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.

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 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.

Resumo

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

✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar