Implemente um programa que faça uma criptografia simples de mensagens usando o método de Cifra de César. A Cifra de César é uma técnica de criptografia na qual cada letra de uma mensagem é substituída por outra, deslocada um número fixo de posições no alfabeto.
  • O programa deve solicitar ao usuário:
  • Uma mensagem (string) que será criptografada.
  • Um número inteiro que será usado como o fator de deslocamento (chave).
  • O programa deve então criptografar a mensagem, deslocando cada letra do alfabeto pelo número de posições fornecido pela chave. Por exemplo: Com uma chave de 3, A se torna D, B se torna E, Z se torna C, etc.
  • O programa deve manter os espaços entre as palavras e ignorar caracteres não alfabéticos (números, pontuações, etc.).
  • O programa deve exibir a mensagem criptografada ao final.
  • Exemplo de saída: Digite a mensagem: Python é divertido! Digite o fator de deslocamento: 4 Mensagem criptografada: Tctxsr j hmfizxyrts!

Passo 1

Beleza, vamos resolver esse exercício de criptografia usando a Cifra de César! A ideia aqui é criar um programa que receba uma mensagem e um número que vai servir como chave para deslocar cada letra da mensagem no alfabeto. Vamos precisar trabalhar com strings, loops para percorrer cada caractere da mensagem e entender como manipular caracteres no computador.

Passo 2

Primeiro, vamos pensar em como o alfabeto funciona na Cifra de César. Cada letra tem uma posição no alfabeto, por exemplo, A é a 1ª, B é a 2ª, e assim por diante até Z, que é a 26ª. Se a gente escolher uma chave, digamos 3, a letra A vai se transformar na D, B em E, e assim por diante. Mas precisamos cuidar para que depois de Z, volte para o começo do alfabeto, como Z se tornando C se usarmos a chave 3.

Passo 3

Vamos começar pedindo para o usuário digitar a mensagem que ele quer criptografar e a chave de deslocamento. Em Python, podemos usar a função input() para isso.
mensagem = input("Digite a mensagem: ")
chave = int(input("Digite o fator de deslocamento: "))

Passo 4

Agora, precisamos criar uma função que vai receber cada letra da mensagem e deslocá-la pela chave fornecida. Vamos tratar cada caractere individualmente, verificar se é uma letra maiúscula ou minúscula, e aplicar o deslocamento. Se não for uma letra, a gente deixa o caractere como está.

Passo 5

Para fazer o deslocamento, vamos usar os códigos ASCII das letras. Cada letra tem um código numérico associado. Por exemplo, ‘A’ é 65 e ‘a’ é 97. Então, para deslocar uma letra, a gente pega o código dela, adiciona a chave, e depois usa a função chr() para voltar ao caractere correspondente.
def cifrar_letra(letra, chave):
    if letra.isupper():
        base = ord('A')
        return chr((ord(letra) - base + chave) % 26 + base)
    elif letra.islower():
        base = ord('a')
        return chr((ord(letra) - base + chave) % 26 + base)
    else:
        return letra

Passo 6

Agora que temos como cifrar uma única letra, vamos aplicar isso a toda a mensagem. Vamos percorrer cada caractere da mensagem, cifrá-lo se for uma letra, ou deixá-lo igual se não for.
mensagem_criptografada = ''.join([cifrar_letra(char, chave) for char in mensagem])

Passo 7

Por fim, vamos mostrar a mensagem criptografada para o usuário.
print("Mensagem criptografada:", mensagem_criptografada)

Resposta

Juntando tudo, o programa completo fica assim:
def cifrar_letra(letra, chave):
    if letra.isupper():
        base = ord('A')
        return chr((ord(letra) - base + chave) % 26 + base)
    elif letra.islower():
        base = ord('a')
        return chr((ord(letra) - base + chave) % 26 + base)
    else:
        return letra

mensagem = input("Digite a mensagem: ")
chave = int(input("Digite o fator de deslocamento: "))

mensagem_criptografada = ''.join([cifrar_letra(char, chave) for char in mensagem])

print("Mensagem criptografada:", mensagem_criptografada)
Exemplo de execução:
Digite a mensagem: Python é divertido!
Digite o fator de deslocamento: 4
Mensagem criptografada: Tctxsr é hmfizxyrts!

Exercícios relacionados