Este projeto é uma implementação simples de um programa de criptografia e descriptografia em Rust, usando um alfabeto padrão e deslocamento de caracteres. O programa pode criptografar e descriptografar mensagens de texto com base em um número de deslocamento especificado pelo usuário.
- Criptografia: Transforma uma mensagem de texto em uma mensagem cifrada usando um deslocamento especificado no alfabeto.
- Descriptografia: Reverte a mensagem cifrada de volta para a mensagem original usando o mesmo deslocamento.
-
Clone o repositório:
git clone https://github.com/DevCarlos-Gabriel/cifra_cesar.git cifra_cesar cd cifra_cesar
-
Compile o programa:
cargo build
-
Execute o programa:
cargo run
Ao iniciar o programa, você verá o seguinte prompt:
Informe uma das seguintes opções:
Criptografar
Descriptografar
- Digite
Criptografar
e pressione Enter. - Insira a mensagem que você deseja criptografar.
- Insira o número de deslocamento (quantas letras serão deslocadas no alfabeto).
Exemplo de entrada:
Criptografar
Olá mundo
3
Saída esperada:
A mensagem criptografada fica assim: Roá Pxqgr
- Digite
Descriptografar
e pressione Enter. - Insira a mensagem que você deseja descriptografar.
- Insira o número de deslocamento usado para criptografar a mensagem.
Exemplo de entrada:
Descriptografar
Roá Pxqgr
3
Saída esperada:
A mensagem descriptografada fica assim: Olá Mundo
O código é estruturado da seguinte forma:
- Constantes: Definição dos alfabetos maiúsculos e minúsculos.
- Função principal (
main
): Responsável por interagir com o usuário, capturar a entrada e chamar as funções de criptografia e descriptografia conforme necessário. - Função
has_accent
: Verifica se um caractere possui acento. - Função
encrypt
: Realiza a criptografia da mensagem. - Função
decrypt
: Realiza a descriptografia da mensagem.
Este projeto usa a crate unicode_normalization
para lidar com caracteres acentuados. Adicione a seguinte dependência ao seu Cargo.toml
:
[dependencies]
unicode-normalization = "0.1.22"
Contribuições são bem-vindas! Sinta-se à vontade para abrir um PR ou relatar problemas.
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para mais detalhes.