Professional Documents
Culture Documents
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
int toref(char *a)
{
int i;
i=0;
switch(a[0])
{
case '0': i+=0; break;
case '1': i+=10; break;
case '2': i+=20; break;
case '3': i+=30; break;
case '4': i+=40; break;
case '5': i+=50; break;
case '6': i+=60; break;
case '7': i+=70; break;
case '8': i+=80; break;
case '9': i+=90; break;
}
switch(a[1])
{
case '0': i+=0; break;
case '1': i+=1; break;
case '2': i+=2; break;
case '3': i+=3; break;
case '4': i+=4; break;
case '5': i+=5; break;
case '6': i+=6; break;
case '7': i+=7; break;
case '8': i+=8; break;
case '9': i+=9; break;
}
return i;
}
struct values
{
int hivalue,lovalue;
int stringval;
};
main()
{
struct values *encoder, *salt, *code;
char input[100],ref[100];
char *c,min[3],sec[3];
int len,lensalt,i;
int refhi,reflo;
int k,l;
FILE *fptr;
time_t t;
time(&t);
c=ctime(&t);
printf("\nNow:%s",c);
min[0]=c[14];
min[1]=c[15];
min[2]='\0';
sec[0]=c[17];
sec[1]=c[18];
sec[2]='\0';
fptr=fopen("code.enc","w");
printf("\nInput:");
gets(input);
len=strlen(input);
encoder=(struct values *)malloc(len*sizeof(struct values));
for(i=0;i<len;i++)
{
encoder[i].stringval=input[i];
encoder[i].lovalue=encoder[i].stringval%16;
encoder[i].hivalue=encoder[i].stringval/16;
}
code=(struct values *)malloc(len*sizeof(struct values));
refhi=toref(min);
reflo=toref(sec);
for(i=0;i<len;i++)
{
code[i].hivalue=encoder[i].hivalue*refhi+encoder[i].lovalue;
code[i].lovalue=encoder[i].lovalue*reflo+encoder[i].hivalue;
}
for(i=0;i<=len;i++)
{
code[i].stringval=code[i].hivalue*1024+code[i].lovalue;
}
fprintf(fptr,"%d ",(refhi*1024+reflo));
for(i=0;i<len;i++)
{
fprintf(fptr,"%d ",code[i].stringval);
}
printf("\nEncoded...\n");
return(0);
}
DECODER
#include<stdio.h>
#include<stdlib.h>
struct values
{
int hivalue,lovalue,stringval;
};
main()
{
FILE *fptr;
int bytes,hiref,loref,b2;
int i;
int len;
struct values code[100],string[100];
fptr=fopen("code.enc","r");
if(!fptr)
{
printf("\nEncoded file missing!!!\n");
exit(0);
}
fscanf(fptr,"%d",&bytes);
loref=bytes%1024;
hiref=bytes/1024;
i=0;
while(!feof(fptr))
{
fscanf(fptr,"%d",&bytes);
code[i].stringval=bytes;
i++;
}
len=i1;
for(i=0;i<len;i++)
{
code[i].lovalue=code[i].stringval%1024;
code[i].hivalue=code[i].stringval/1024;
}
for(i=0;i<len;i++)
{
string[i].lovalue=code[i].hivalue%hiref;
string[i].hivalue=code[i].hivalue/hiref;
}
for(i=0;i<len;i++)
{
string[i].stringval=string[i].hivalue*16+string[i].lovalue;
}
printf("\nThe decoded string is:");
for(i=0;i<len;i++)
printf("%c",string[i].stringval);
printf("\n");
return(0);
}