Grupo Lógica de Programação
ESTAMOS EM CONSTRUÇÃO - DESENVOLVIMENTO


Seja Bem Vindo ao Forum Grupo Lógica de Programação é uma satisfação recebê-los aqui.. espero que gostem desse espaço que foi feito para todos nós PROGRAMADORES.. Então venha fazer Parte deste Time tambem.. Saiba que este Forum foi feito com muita dedicação para o bem estar de todos vocês.. Então Registre-se e Decole no Mundo da Programação.....
Ao se Registrar você tem direito a participar do CHAT que só é visivel ao membros registrados. e pode bater papo com algum outro membro que estiver on line.. caso tenha alguma duvida pode olhar no Menu FAQ as perguntas mais recentes.
Bons Estudos é o que deseja todos nós que fazemos o GRUPO LÓGICA DE PROGRAMAÇÃO acontecer...

(EL MENSAJERO [FUNDADOR])

Criptografia em C

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Criptografia em C

Mensagem por Chrislley Alves da Silva em Seg 17 Set 2012, 00:47

Abaixo tenho um código fonte de uma criptografia que eu mesmo fiz, pra quem estuda criptografia, pode pegar o código para estudar ou até mesmo tentar quebrar.


#include
#include
#include


unsigned long int a = 1732584193;
unsigned long int b = -271733879;
unsigned long int c = -1732584194;
unsigned long int d = 271733878;
unsigned long int e = 1732584193;
unsigned long int f = -271733879;
unsigned long int g = -1732584194;
unsigned long int h = 271733878;

#define X1 7
#define X2 11
#define X3 15
#define X4 21

#define FUN1(x,y,z)( ( (x)<<(y) ^(x) & (y) ) & ( (z)*(y)))
#define FUN2(x,y,z)( ( (x)>>(y) ^(z) <<(y) ) & ( (x)+(x)))
#define FUN3(x,y,z)( ( (z)^(y) &(x) >> (y) ) & ( (y)^(y)))
#define FUN4(x,y,z)( ( (x)&(z) >>(x) & (y) ) & ( (x)|(z)))

#define F1(a,b,c,d,x,len,array)\
{\
(a) = FUN1(b,c,len) + (array); \
(a) = FUN2(a,x,d) + (a) + (len); \
(a) += FUN3(len,x,len) + (b) + (c);\
}

#define F2(a,b,c,d,x,len,array)\
{\
(a) = FUN2(b,c,len) + (array); \
(a) = FUN2(a,x,d) + (a) + (len); \
(a) += FUN3(len,x,len) + (b) + (c);\
}

#define F3(a,b,c,d,x,len,array)\
{\
(a) = FUN3(b,c,len) + (array); \
(a) = FUN3(a,x,d) + (a) + (len); \
(a) += FUN3(len,x,len) + (b) + (c);\
}

#define F4(a,b,c,d,x,len,array)\
{\
(a) = FUN4(b,c,len) + (array); \
(a) = FUN4(a,x,d) + (a) + (len); \
(a) += FUN3(len,x,len) + (b) + (c);\
}
struct hash{
int len;
int array[16];
char hash[64];
}hash;

void enche_array(char *str){
int len = hash.len;
int i=0;
int y=0;

while(len>0){

hash.array[i] = (int)(str[y]) << 24;
hash.array[i] |= (int)(str[y+1]) << 16;
hash.array[i] |= (int)(str[y+2]) << 8;
hash.array[i] |= (int)(str[y+3]);

i++;
if(i==16)
i=0;
y += 4;
len -= 4;
}

}

void gera_hash(){

F1(a,b,c,d,X1,hash.len,hash.array[0]);
F1(b,c,d,e,X2,hash.len,hash.array[1]);
F1(c,d,e,f,X3,hash.len,hash.array[2]);
F1(d,e,f,g,X4,hash.len,hash.array[3]);
F2(e,f,g,h,X1,hash.len,hash.array[4]);
F2(f,g,h,a,X2,hash.len,hash.array[5]);
F2(g,h,a,b,X3,hash.len,hash.array[6]);
F2(h,a,b,c,X4,hash.len,hash.array[7]);
F3(b,c,d,e,X1,hash.len,hash.array[8]);
F3(c,d,e,f,X2,hash.len,hash.array[9]);
F3(d,e,f,g,X3,hash.len,hash.array[10]);
F3(e,f,g,h,X4,hash.len,hash.array[11]);
F4(f,g,h,a,X1,hash.len,hash.array[12]);
F4(g,h,a,b,X2,hash.len,hash.array[13]);
F4(h,a,b,c,X3,hash.len,hash.array[14]);
F4(a,b,c,d,X4,hash.len,hash.array[15]);


F1(c,d,e,f,X4,hash.len,hash.array[5]);
F1(d,e,f,g,X3,hash.len,hash.array[4]);
F1(e,f,g,h,X2,hash.len,hash.array[3]);
F1(f,g,h,a,X1,hash.len,hash.array[2]);
F2(g,h,a,b,X1,hash.len,hash.array[1]);
F2(h,a,b,c,X2,hash.len,hash.array[10]);
F2(a,b,c,d,X3,hash.len,hash.array[9]);
F2(b,c,d,e,X4,hash.len,hash.array[8]);
F3(d,e,f,g,X2,hash.len,hash.array[7]);
F3(e,f,g,h,X3,hash.len,hash.array[6]);
F3(f,g,h,a,X4,hash.len,hash.array[15]);
F3(g,h,a,b,X1,hash.len,hash.array[14]);
F4(h,a,b,c,X4,hash.len,hash.array[13]);
F4(a,b,c,d,X2,hash.len,hash.array[12]);
F4(b,c,d,a,X1,hash.len,hash.array[11]);
F4(c,d,e,f,X3,hash.len,hash.array[0]);

/*********************************************/
F1(a,b,c,d,X1,hash.len,hash.array[15]);
F1(b,c,d,e,X2,hash.len,hash.array[14]);
F1(c,d,e,f,X3,hash.len,hash.array[13]);
F1(d,e,f,g,X4,hash.len,hash.array[12]);
F2(e,f,g,h,X1,hash.len,hash.array[11]);
F2(f,g,h,a,X2,hash.len,hash.array[1]);
F2(g,h,a,b,X3,hash.len,hash.array[2]);
F2(h,a,b,c,X4,hash.len,hash.array[3]);
F3(b,c,d,e,X1,hash.len,hash.array[4]);
F3(c,d,e,f,X2,hash.len,hash.array[5]);
F3(d,e,f,g,X3,hash.len,hash.array[10]);
F3(e,f,g,h,X4,hash.len,hash.array[9]);
F4(f,g,h,a,X1,hash.len,hash.array[8]);
F4(g,h,a,b,X2,hash.len,hash.array[7]);
F4(h,a,b,c,X3,hash.len,hash.array[6]);
F4(a,b,c,d,X4,hash.len,hash.array[0]);


F1(c,d,e,f,X4,hash.len,hash.array[10]);
F1(d,e,f,g,X3,hash.len,hash.array[9]);
F1(e,f,g,h,X2,hash.len,hash.array[8]);
F1(f,g,h,a,X1,hash.len,hash.array[7]);
F2(g,h,a,b,X1,hash.len,hash.array[6]);
F2(h,a,b,c,X2,hash.len,hash.array[5]);
F2(a,b,c,d,X3,hash.len,hash.array[15]);
F2(b,c,d,e,X4,hash.len,hash.array[14]);
F3(d,e,f,g,X2,hash.len,hash.array[13]);
F3(e,f,g,h,X3,hash.len,hash.array[12]);
F3(f,g,h,a,X4,hash.len,hash.array[11]);
F3(g,h,a,b,X1,hash.len,hash.array[0]);
F4(h,a,b,c,X4,hash.len,hash.array[1]);
F4(a,b,c,d,X2,hash.len,hash.array[2]);
F4(b,c,d,a,X1,hash.len,hash.array[3]);
F4(c,d,e,f,X3,hash.len,hash.array[4]);

}

void help(){
printf("#######################################################\n");
printf("## Criptografia escrita por Chrislley Alves da Silva ##\n");
printf("## E-mail: [Você precisa estar registrado e conectado para ver este link.] ##\n");
printf("#######################################################\n");

}

int main(int argc, char **argv){

FILE *arq;

if(argc<3){
help();
printf("Use: %s -s string \n",argv[0]);
printf("Use: %s -f arquivo \n\n",argv[0]);
exit(1);
}

if(argv[1][1] == 's'){
hash.len = strlen(argv[2]);
enche_array(argv[2]);
}

if(argv[1][1] == 'f'){
arq = fopen(argv[2],"r");
hash.len = sizeof(arq);
enche_array(arq);
}


gera_hash();
//printf("a: %d b: %d c: %d d: %d e: %d f: %d g: %d h: %d\n",a,b,c,d,e,f,g,h);
sprintf(hash.hash,"%x%x%x%x%x%x%x%x\n",a,b,c,d,e,f,g,h);
printf(hash.hash);


return 0;
}

Chrislley Alves da Silva
Novo no Fórum
Novo no Fórum

Mensagens : 2
Pontos : 12
Reputação : 0
Data de inscrição : 07/04/2012
Idade : 25
Localização : Goiânia

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum