You are on page 1of 4

ENCODER

#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=i­1;
 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);
}

You might also like