Ir ao conteúdo
  • Cadastre-se

Ajuda em exercício de criptografia


adjardim

Posts recomendados

Olá,

estou fazendo um trabalho p/ a faculdade no qual tenho que implementar o algoritmo de criptografia: Cifra de Políbio (também conhecido como código de Políbio).

Achei muito pouco material sobre este algoritmo. Uma breve descrição se encontra neste site, mais abaixo na página:

http://www.hu60.com/CorpoCriptologia.htm

Sou novato em programação e principalmente em Linguagem C.

Meu professor me passou esta função e disse que tenho modificá-la sem que o resultado esperado mude.

Cada letra vai ser transformada um um código de 2 dígitos.

Por exemplo:

Computaçao

291412152019000014

Como tenho pouca experiência em programação, não tenho muita ideia de por onde começar. As modificações que tento sempre mudam o resultado.

Preciso entregar nesta segunda feira e estou desesperado. Será que alguém poderia me ajudar?

Desde já obrigado.

Antes foi declarada uma matriz 9x10 com um caractere em cada posição.

#define linhas 9
#define colunas 10

char P[linhas][colunas];
int i, j;

void inicializar_matriz(void)
{
P[0][0]='a';
P[0][1]='b';
P[0][2]='c';
P[0][3]='d';
.
. //restante dos caracteres
.
P[8][7]='&';
P[8][8]='"';
P[8][9]=' ';
}

void criptografar(void)
{
char caracteres[]="abcdefghijklmnopqrstuvwxyzçABCDEFGHIJKLMNOPQRSTUVWXYZÇ0123456789.,::?!<>()[]{}+-/*_@#$%& ";
char entrada[150];
int saida[300];
int tam, i, pos, aux;

printf("\n\n Entre com o texto a ser criptografado:\n");
printf(" Maximo de 150 caracteres\n\n");

gets(entrada);
aux = -1;
tam = strlen(entrada);
pos = 0;
for (pos=0;pos<tam;pos++)
{
if (strchr(caracteres,entrada[pos]))
{
for (i=0;i<9;i++)
for (j=0;j<10;j++)
{
if (entrada[pos]==P[i][j])
{
aux++;
saida[x]=i;
aux++;
saida[x]=j;
}
}
}
}
for (i=0; i<=x; i++)
printf("%d", saida[i]);
printf("\n\n Texto criptografado! ");
getch();
}

Link para o comentário
Compartilhar em outros sites

É isso que venho tentando fazer, mas os valores se modificam, nao sei porque.

Este for:

for (pos=0;pos<tam;pos++)

equivale a este while, certo?

pos =0;
while pos<tam
{
pos++;
//resto dos comandos
}

Foi isso que modifiquei, mas os valores na hora de criptografar o texto não batem com os valores da tabela.

Não haveria outra forma de implementar este programa?

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!