📌 Projeto Desenvolvido utilizando Conceitos de Criptografia como Cifragem por Substituição.
📝 Utilizando Cifragem de César para criptografar mensagens digitadas.
📝 Utilizando valores ASCII para deslocar os caracteres.
- Faça download do Programa "XAMPP" e o instale em seu computador.
- Faça download do projeto e descompacte a pasta;
- Mova a pasta do projeto dentro da pasta "htdocs" (armazenada na pasta Xampp, localizada no seu disco Local C:);
- Abra o Xampp e execute Apache;
- No navegador, escreva "localhost/" e coloque o nome da pasta / nome do arquivo index.html Você entrará na página principal do Projeto.
- Tela simples que recebe um texto do usuário e o converte na Cifra de César.
- Cifra de Cesar é uma Cifragem por substituição, onde você substitui cada caractere por 3 casas a frente.
- Exemplo: a letra A = D e assim por diante.
- Leva esse nome porque Julio César foi o 1° usuário conhecido dessa Cifra.
- Na cifra de César, o deslocamento de caracteres é feito usando seus valores ASCII.
- Portanto, antes de aplicar a cifra de César para deslocar os caracteres, é necessário primeiro converter os caracteres da entrada em seus valores ASCII correspondentes.
- Veja a seguir a solução proposta:
Solução | Descrição |
---|---|
if ($_SERVER["REQUEST_METHOD"] == "POST") { ... } |
Nos dá o método de solicitação HTTP usado para acessar a página, seja "GET", "POST" ou outro método HTTP. |
$frase = $_POST["frase"]; |
Pega o valor enviado através do formulário no HTML, onde o name é "frase". |
$codigo = ''; |
Inicializa uma nova string para armazenar o codigo que será modificado. Comeca vazio porque conforme ocorre o loop, as letras serão armazenadas nele. |
for ($i = 0; $i < strlen($frase); $i++) { |
$i = 0; Esta é a inicialização do contador do loop, percorrer cada caractere na string $frase. $i < strlen($frase); Enquanto o valor de $i for menor que o comprimento da frase, strlen = retorna o n° total de caracteres na frase digitada, o loop continuará até que $i seja igual ao n° de caracteres na frase para que cada caractere seja processado. $i++ Move o loop para o próximo caractere na string $frase. |
$atualCode = ord($frase[$i]); |
ord Obtém o código ASCII ((representação numérica de caracteres) ) do caractere atual da string. |
$nextCode = $atualCode + 3; |
O código ASCII do caractere atual ($atualCode) é deslocado por três posições para frente. Como exemplo, se o $atualCode for 65 (correspondente a 'A' em ASCII), então $nextCode será 65 + 3 = 68. |
$nextLetter = chr ($nextCode ); |
chr Converte um valor ASCII de volta para o caractere correspondente. Exemplo: transformando 68 na letra D |
$codigo .= $nextLetter; |
O caractere $nextLetter obtido após o deslocamento é concatenado à string $codigo |
## 📝 Correção de erros:
Descrição do erro | Solução Implementada |
---|---|
Espaços digitados eram representados por Hashtag |
// Verifica se o caractere atual é um espaço if ($frase[$i] == ' ') { // Se for um espaço, simplesmente o concatena ao código sem modificar $codigo .= ' '; |
Erros de saída para letras do final do alfabeto, exemplo: letra X saindo como { |
// Verifica se o deslocamento ultrapassa a letra 'z' if ($nextCode > ord('z')) { // Se ultrapassar, ajusta para começar de novo em 'a' $nextCode -= 26; |