Ir para conteúdo
Fórum Script Brasil
  • 0

Sistema de encriptação


guido

Pergunta

Boa Noite.

Confesso a vocês que sou iniciante em C, estou estudando aqui em casa e me surpreendi com esse, que mal começar eu consegui. <_<

Um dos sistemas de encriptacão mais antigos é atribuído a Júlio César:

se uma letra a ser encriptada é a letra de número N do alfabeto, substitua-a com a letra (N+K), onde K é um número inteiro constante (K = 3). Usualmente consideramos o espaço como zero e todos os cálculos são realizados apenas com as letras do alfabeto. Dessa forma, para K = 1 a mensagem

“Ataque ao amanhecer” se torna “bubrfabpabnboifdfs”.

Faça um programa que receba como entrada uma mensagem e um valor de K e retorne a mensagem criptografada pelo código de César. Fraquezas destas técnica de encriptação: apenas 26 chaves possíveis.

Alguém pode ajudar?

Editado por Jonathan Queiroz
Modificar título para descrever melhor a dúvida (Jonathan)
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Você lê a mensagem e armazena ela em uma string. No PC cada caracter é representado pelo código ASCII (A -> 65, B -> 66, etc). Assim basta você somar um número k à mensagem original que você obtém a mensagem cifrada.

...
char m_original[100];    // vetor para guardar a mensagem original
char m_cifrada[100];     // vetor para guardar a mensagem cifrada
int k = 3;      // chave 
...
for(int i = 0; i<strlen(m_original); i++)
{
   if(m_original[i] == ' ') m_cifrada[i] = 'A';       // se é espaço colocar 'A'
        else   m_cifrada[i] = m_original[i] + k;     // cifra a mensagem
   m_cifrada[i] = m_cifrada[i] % 91 + 65;          // deixa as letras dentro do intervalo de A - Z
}
...

Esse exemplo é para mensagem coma todas as letras em maiúscula. Ai você melhora ele para todas as formas.

Eu não testei esse código, inventei agora de cabeça.

Abraço.

Link para o comentário
Compartilhar em outros sites

  • 0
Percorra todos os caracteres com um loop e some um. O que há de difícil nisso ?

Desculpa ae campeão se tu sabe tudo, mas como eu disse: Sou Iniciante.

Não sei tudo não... E é por isso que estou aqui: para aprender e ensinar. O que quis dizer é que é mais fácil ajudar quando se sabe em que parte, especificamente, está a dúvida. No seu post apenas foi citado o problema, não constava o que havia feito e as dúvidas que surgiram.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...