
Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03

A Cifra de César é uma cifra antiga e amplamente usada que é fácil de criptografar e descriptografar. Ele funciona mudando as letras do alfabeto para criar um alfabeto inteiramente novo (ABCDEF poderia mudar mais de 4 letras e se tornaria EFGHIJ).
Cifras Caesar não são as cifras mais seguras que existem, mas são boas para pequenas tarefas, como passar notas secretas ou criar senhas um pouco mais fortes. É realmente fácil decifrar o código, mas pode ser entediante criptografá-lo se você não tiver o alfabeto especial memorizado.
Para facilitar esse processo, podemos usar o poder dos computadores, mais especificamente a linguagem de programação Python.
Este Instructable mostrará como criar um programa que converte mensagens em uma cifra ao seu comando.
Suprimentos
Tudo que você precisa é de um interpretador Python: IDLE, Pycharm e Thonny são algumas opções boas e gratuitas (eu usei Pycharm)
Conhecimento básico de Python
Etapa 1: Declarando Variáveis e Obtendo Entradas

Para realmente armazenar os valores de string (texto) do alfabeto, mensagem, deslocamento, etc., precisamos usar variáveis. Começamos declarando as variáveis 'alphabet', 'partialOne', 'partialTwo' e 'newAlphabet'. Eu escrevi os nomes das variáveis em Camel Case em meu código (a primeira palavra é minúscula e a segunda maiúscula), mas você pode escrever da maneira que quiser, contanto que se lembre de alterá-la no resto do código também. A variável do alfabeto possui o valor "abcdefghijklmnopqrstuvwxyz". Todas as outras variáveis são definidas como "", que é uma string vazia, pois ainda não temos seus valores.
O que isso está fazendo é configurar o sistema parcial, que é o que estamos usando para realmente criar a mudança. Isso será explicado em uma etapa posterior.
Depois disso, temos que obter a mensagem e o valor de deslocamento do usuário. Usamos a função de entrada para fazer isso. Esta parte do código pede ao usuário uma mensagem e um número para mudar o alfabeto.
CÓDIGO:
alfabeto = "abcdefghijklmnopqrstuvwxyz"
parcialOne = ""
parcialTwo = ""
newAlphabet = ""
message = input ("Por favor, digite a mensagem que deseja traduzir:").lower ()
key = int (input ("Por favor, digite o número que você deseja mudar por:"))
Etapa 2: Criando o Novo Alfabeto

Agora, para criar o alfabeto alterado. Para fazer isso, usaremos o sistema parcial. O sistema parcial é onde o computador divide o alfabeto em dois parciais (uma maneira elegante de dizer as partes). A primeira parcial é o tempo que você disse ao programa para mudar, e a segunda é o restante. O computador troca os parciais. Isso é exatamente o que o código está fazendo, junto com a primeira instrução, que diz que se a mudança for 0, o novo e o antigo alfabeto são os mesmos, já que você não está trocando nada.
Por exemplo:
Sequência - 123456789
Parcial Um - 123; Parcial Dois - 456789
Nova Sequência - 456789123
CÓDIGO:
se chave == 0:
newAlphabet = alphabet
chave elif> 0:
parcialOne = alfabeto [: tecla]
parcialTwo = alfabeto [tecla:]
newAlphabet = partialTwo + partialOne
outro:
parcialOne = alfabeto [:(26 + tecla)]
parcialTwo = alfabeto [(26 + tecla):]
newAlphabet = partialTwo + partialOne
Etapa 3: Mudando a mensagem

Agora temos nosso alfabeto e o novo alfabeto. Tudo o que resta é mudar a mensagem para o código.
Primeiro, definimos uma nova variável e a chamamos de 'criptografada' e a definimos como "". Em seguida, escrevemos um loop for realmente complicado que verifica cada letra da mensagem e a troca para a nova letra. Ele produz o resultado e aí está, um código convertido com sucesso!
CÓDIGO:
criptografado = "" para message_index no intervalo (0, len (mensagem)):
se mensagem [message_index] == "":
criptografado + = ""
para alphabet_index in range (0, len (newAlphabet)):
if message [message_index] == alphabet [alphabet_index]:
criptografado + = newAlphabet [alphabet_index]
imprimir (criptografado)
Etapa 4: Adicional


Em anexo está o arquivo de código.
Recomendado:
Programa Python - Composto de Juros COM contribuições / depósitos mensais: 5 etapas

Programa Python - Juros compostos COM contribuições mensais / depósito: Programa para calcular juros compostos com contribuição mensal no final do mês. Fórmula tirada de TheCalculatorSite.com:Juros compostos para o principal: P (1 + r / n) ^ (nt) Valor futuro de uma série: PMT × (((1 + r / n) ^ nt - 1) / (r / n))
Como Crear Un Programa En Python Que Encuentre El Area Bajo La Curva De Un Diagrama PV: 5 Steps

Como Crear Un Programa En Python Que Encuentre El Area Bajo La Curva De Un Diagrama PV: Este tutorial se enes ñ ara calcul el area bajo una curva con datos importados from un archivo. Para ello se calcula a área usando muchos trapecios sumados y se colorear á el area bajo esta
Programa Python Para El Area De Un Diagrama PV: 4 etapas

Programa Python Para El Area De Un Diagrama PV: Introducci ó n al programaSe sabe que el á rea bajo la curva de un diagrama PV determina el trabalho hecho por un gas ideal. Neste programa se determinara o trabalho hecho por um gás que cumple com os dados tomados na tabela de um
Como fazer um programa de integração numérica em Python: 10 etapas

Como fazer um programa de integração numérica em Python: Este é um tutorial sobre como criar e executar um programa que avaliará integrais definidas usando um algoritmo de integração numérica. Eu dividi as etapas em 3 seções: entender o algoritmo que será usado para fazer o programa, codificar
Alto-falante Bill Cipher Pyramid: 9 etapas (com imagens)

Bill Cipher Pyramid Speaker: Este projeto é inspirado no design da pirâmide para Bill Cipher do show Gravity Falls e foi criado para a aula de Tecnologia de Design. Atualmente o produto está inacabado e isso serve como plano de produção. A página será atualizada quando o produ