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!