Ir para conteúdo

POWERED BY:

Arquivado

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

ADJ

Criptografia - Cifra de Políbio

Recommended Posts

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

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

Achei muito pouco material sobre este algoritmo. Uma breve descrição se encontra neste site

 

http://www.numaboa.com/criptografia/128-to...ica/179-Polibio

 

Como tenho puca experiência em programação, não tenho muita idéia de por onde começar.

Será que alguém poderia me ajudar?

Desde já agradeço pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até hoje à tarde estava funcionando. Não sei por qual razão a página saiu do ar.

Mas neste outro link também há uma descrição do código de políbio mais abaixo na página:

 

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

 

No meu trabalho, ao invés de uma tabela 5x5, farei uma tabela 9x10 com quase todos os caracteres do teclado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

meu professor facilitou o trabalho p/ mim.

Ele 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

As modificações que tento sempre mudam o resultado. Alguém poderia me auxiliar?

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';
	.
	.
	.
 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();
}

 

Estou tentando subsituir o for pelo while, 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.

Preciso entregar nesta segunda feira e estou desesperado. Não haveria outra forma de implementar este programa?

Desde já agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.