Ir ao conteúdo

Posts recomendados

Postado

Um dos sistemas de encriptaçã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 (César utilizava K = 3). Usualmente consideramos o espaço como deslocamento zero e todos os cálculos são realizados com módulo-27. Dessa forma, para K = 1 a mensagem Ataque ao amanhecer se torna bubrfabpabnboifdfs.
a) Faça uma função que receba como parâmetros uma mensagem e um valor de K e retorne a mensagem criptografada pelo código de César. Fraquezas do algoritmo: apenas 26 chaves possíveis.
b) Faça uma função que receba como parâmetros uma mensagem e um valor de K e retorne a mensagem descriptografada pelo código de César. Fraquezas do algoritmo: apenas 26 chaves possíveis.

<


 #include <stdio.h>
#include <ctype.h>
int main()
{
    char acao, mens_orig[51], mens_cifrada[51];
    int i=0, k;
    printf("Informe a opção desejada: C- cifrar / D - decifrar: ");
    scanf("%c", &acao);
    fflush(stdin);
    printf("Informe o deslocamento: ");
    scanf("%d", &k);
    if(acao=='c')
    {
        printf("Informe a mensagem a cifrar: ");
        scanf("% [^\n]",mens_orig);
        while (mens_orig != '\0')
        {
            if (mens_cifrada >= 'A' && mens_cifrada <= 'Z')
            {
            mens_cifrada = toupper(mens_orig) + k;
            mens_cifrada -= (mens_cifrada > 'Z') ? 26 : 0;
            }
            else
            {
                    mens_cifrada = mens_orig;
            }
            i++;
        }
        mens_cifrada = '\0';
        printf("\nMensagem cifrada: %s\n", mens_cifrada);
    }
    else if (toupper(acao) == 'D')
    {
        printf("Informe a mensagem a decifrar: ");
        scanf("% [^\n]",mens_cifrada);
        while (mens_cifrada != '\0')
        {
            if (mens_cifrada >= 'A' && mens_cifrada <= 'Z')
            {
                mens_orig = toupper(mens_cifrada) - k;
                mens_orig += (mens_orig < 'A')? 26 : 0;
            }
            else
            {
                mens_orig = mens_cifrada;
            }
            i++;
        }
        mens_orig = '\0';
        printf("\nMensagem decifrada: %s\n", mens_orig);
    }
    else
    {
        printf("Opção inválida\n");
    }
    system("pause");
}

>

Postado

Para postar código use a o botão <> no topo do campo onde você digita a resposta do tópico.

image.png.d2f5b07ebb38fee82acb27fc88e0de00.png

 

 

Não deve ser feita a entrada da mensagem pelo usuário dentro das funções criptografa e descriptografa, essas funções já receberão a mensagem pronta e um de seus parâmetros, e deve apenas modificar/alterar a mensagem, criptografando ou descriptografando ela.

adicionado 28 minutos depois

 

Edit:

@João Vitor Sacramento Rocha O programa que você postou originalmente ao menos usava funções para criptografar, que é o que o enunciado pede pra fazer (pede apenas essas funções, não um programa completo, mas pode fazer o programa para testá-las).

 

Este que você editou e colocou aqui no tópico (que foi copiado daqui https://br.answers.yahoo.com/question/index?qid=20150628101623AACByz9 ) não usa funções logo não atende o que o exercício pede.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!