Uma ferramenta web interativa para codificar e decodificar mensagens utilizando dois métodos criptográficos clássicos: Cifra de César e Base64.
Acesse a aplicação em produção: https://leoachaves.github.io/cifraDeCesar/
Este projeto foi desenvolvido como ferramenta educacional para demonstrar o funcionamento de dois métodos de criptografia:
| Método | Descrição |
|---|---|
| Cifra de César | Criptografia por substituição onde cada letra é deslocada um número fixo de posições no alfabeto |
| Base64 | Esquema de codificação que representa dados binários em formato de texto ASCII |
- ✍️ Entrada de texto para mensagens (até 55 colunas × 7 linhas)
- 🔄 Seleção do método (Cifra de César ou Base64)
- 🎚️ Chave ajustável (1 a 99) para a Cifra de César
- 🔀 Alternância entre Codificar e Decodificar
- 📤 Exibição do resultado na própria página
- 🎨 Design responsivo com tema "retrô/cyberpunk"
⚠️ Validação de entrada (Base64 rejeita caracteres inválidos)
| Tecnologia | Descrição |
|---|---|
| HTML5 | Estrutura da página |
| CSS3 | Estilização e responsividade (dois arquivos: principal e mobile) |
| JavaScript (ES6+) | Lógica de criptografia e manipulação do DOM |
| GitHub Pages | Hospedagem gratuita |
cifraDeCesar/
├── index.html # Página principal
├── criptografia.css # Estilos principais
├── mobile.css # Estilos responsivos
├── imagens/
│ └── icon3-removebg-preview.png # Ícone/favicon
└── javaScript/
├── criptografia.js # Lógica principal (eventos, UI)
├── cifraDeCesar.js # Algoritmos da Cifra de César
└── base64.js # Algoritmos de Base64 (btoa/atob)
Acesse: https://leoachaves.github.io/cifraDeCesar/
- Clone o repositório:
git clone https://github.com/LeoAChaves/cifraDeCesar.git
cd cifraDeCesar- Abra o arquivo
index.htmlno navegador
- Digite sua mensagem no campo de texto
- Escolha o método:
Cifra de César→ permite ajustar a chave (1-99)Base64→ codificação padrão
- Selecione a operação:
Codificar→ transforma mensagem em códigoDecodificar→ transforma código em mensagem
- Clique no botão para executar
- O resultado aparece abaixo do botão
| Operação | Entrada | Chave | Saída |
|---|---|---|---|
| Codificar (César) | HELLO |
3 | KHOOR |
| Decodificar (César) | KHOOR |
3 | HELLO |
| Codificar (Base64) | Hello World! |
- | SGVsbG8gV29ybGQh |
| Decodificar (Base64) | SGVsbG8gV29ybGQh |
- | Hello World! |
Edite o arquivo criptografia.css:
/* Cores principais */
body {
background: linear-gradient(45deg, #0a0a2a, #1a1a4a);
}
button.enviar {
background-color: #7a2be0;
box-shadow: 0 0 10px #7a2be0;
}No index.html:
<input id="chave" type="range" value="21" min="1" max="99" />Altere min e max conforme necessário.
// Codificar: (charCode + chave - 65) % 26 + 65
// Decodificar: (charCode - chave - 90) % 26 + 90// Codificar: btoa(mensagem)
// Decodificar: atob(codigo) + validação de caracteres| Situação | Comportamento |
|---|---|
| Nenhum método selecionado | Campo "Método" fica vermelho por 1 segundo |
| Base64 inválido para decodificar | Campo "Tipo" fica vermelho, operação cancelada |
| Entrada vazia | Mensagem vazia → saída vazia |
Leonardo de Almeida Chaves
Este projeto está sob a licença MIT.
- Júlio César - Pela inspiração histórica da cifra
- Resilia Educação - Pelo projeto didático
"A segurança não é um produto, é um processo." - Bruce Schneier
Desenvolvido com 💻 e 🔐