⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iv_load.h

📁 MICKEY 2.0 STREAM CIPHER IMPLEMENTATION IN VISUAL C++
💻 H
字号:
#include<stdio.h>
#include<math.h>

void bin_2_hex(char [],int [],int ,int );
void dec_2_binary(int [],int [],int  ,int);
void new_IV(char [],int [],int );
 
 //***********************************************************************
							//IV LOAD FUNCTION//
 //***********************************************************************
void IV_LOAD(int e[])
{
FILE *file;
char c[15];
int d[10];
int n,i,j=0;

 file = fopen("init_var.txt", "r");
 
//==================================================================
 if(file==NULL) 
	{ 
	cout<<"Error: can't open file.\n\n"; 
	 }
 
 else
	 {
		n = fread(c, 1, 14, file);
		c[n] = '\0';
		cout<<"\nORIGINAL INITIALIZATION VARIABLE(IV)  ";
		cout<<c<<endl;
 
	}
j=0;

int spaces=0;
 for(i=0;i<n;i++)
 {
	 if(int(c[i])!=32)
	 {
		 	 
		d[j]=int(c[i]);

		 
		j++;

		
	 }	
	 
	 else if(int(c[i])==32)
	 { spaces++;}
 }

 //==================================================================
  fclose(file);

	
	dec_2_binary(d,e,sizeof(d)/4,sizeof(e)/4);
	



//	char m[10]={'0','0','0','0','0','0','0','0','0','0'};
//	new_IV(m,e,sizeof(e)/4);//CREATE NEW IV AND STORE IT 

//	for(i=0;i<10;i++)
//		cout<<m[i];

 cout<<endl;
 cout<<endl;


}


 //***********************************************************************
							//SECRET KEY LOAD FUNCTION//
 //***********************************************************************

void SECRET_KEY_LOAD(int e[])
{
FILE *file;
char c[29];
//int e[160],d[20];
int d[20];
int n,i,j=0;

 file = fopen("secret_key.txt", "r");
 
//==================================================================
 if(file==NULL) 
	{ 
	cout<<"Error: can't open file.\n\n"; 
	 }
 
 else
	 {	//cout<<"File opened successfully.\n";
		n = fread(c, 1, 29, file);
		c[n] = '\0';
		cout<<"ORIGINAL SECRET KEY FROM HEADER IS \n";
		cout<<c<<endl;  
 
	}
j=0;

int spaces=0;
for(i=0;i<n;i++)
 {
	 if(int(c[i])!=32)
	 {
		 	 
		d[j]=int(c[i]);

		 
		j++;

		
	 }	
	 
	 else if(int(c[i])==32)
	 { spaces++;}
 }



 cout<<endl;
 //==================================================================
  fclose(file);

	
	dec_2_binary(d,e,sizeof(d)/4,sizeof(e)/4);//e contains binary

}

//***************************************************************************
						//BINARY TO HEX CONVERSION
//***************************************************************************
void bin_2_hex(char d[],int e[],int size_d,int size_e)
{
int a=0,i=0,r=0;
int k=0;
int sum=0;
 

		 for(i=0;i<size_d;i++)
			 {

					
						k=8;
			
						for(r=8*i;r<8*(i+1);r++)
							{
							sum=sum+(e[8*(i+1)-k]*pow(2,r%8));
							k--;
							}
						a=sum;
						sum=0;

						d[i]=char(a);

	
			}

}//function ends here

//***************************************************************************
						//DECIMAL TO BINARY CONVERSION
//***************************************************************************
void dec_2_binary(int d[],int e[],int size_d ,int size_e)
{
int a=0,i=0,r=0;
int k=0;


 for(i=0;i<size_e;i++)
 {	 e[i]=0;}


		 for(i=0;i<size_d;i++)
			 {

				
						a=d[i];	
			
						for(r=0;r<8;r++)
							{
								if(a%2==1)
								{e[k]=1;
								k++;}
								else
								k++;
								a=a/2;
							}
					
			}

}//function ends here


//***********************************************************************
							//NEW IV MAKER AND SAVER FUNCTION//
 //***********************************************************************
void new_IV(char m[],int e[],int size_e)
{
int i=0;
int j=0,r=0;
	
for(i=0;i<size_e-1;i++)
{
j=j+(e[i]*pow(2,i));
	//e[i]=e[i]^e[i+1];
}
j=j+1000;
int k=0;
for(i=0;i<size_e;i++)
			 {
						for(r=0;r<8;r++)
							{
								if(j%2==1)
								{e[k]=1;
								k++;}
								else
								k++;
								j=j/2;
							}
					
			}

bin_2_hex(m,e,10,80);

		 //********************** WRITE NEW IV ***********************************

FILE *stream;
int numwritten;
//OPEN FILE IN TEXT MODE , PREVIOUS CONTENTS ERASED
  if( (stream = fopen( "new_init_var.txt", "w" )) != NULL )
  {
	  numwritten=fwrite(m,1,10,stream);
	  cout<<"\nWROTE NEW IV :  " <<numwritten << " CHARACTERS \n";
		  fclose(stream);
  }
  else
	  cout<<" PROBLEM OPENING FILE \n";
		 //***********************************************************************

}//function ends here



void TEXT_LOAD(int e[])
{
FILE *file;
char c[150];
//int e[1200];
int d[150];
int n,i,j=0;

 file = fopen("plain_text.txt", "r");
 
//==================================================================
 if(file==NULL) 
	{ 
	cout<<"Error: can't open file.\n\n"; 
	 }
 
 else
	 {	//cout<<"File opened successfully.\n";
		n = fread(c, 1, 100, file);
		c[n] = '\0';
		
		cout<<"\t\t\t\t'PLAIN TEXT IS'\n\n";
		cout<<c<<endl;
 
	}
j=0;

int spaces=0;
 for(i=0;i<n;i++)
 {
	 //if(int(c[i])!=32)
	// {
		 	 
		 if  ( (int(c[i])>47) && (int(c[i])<58))
		 d[j]=int(c[i])-48;	 
		 
		

		 else if ( (int(c[i])>64) && (int(c[i])<123))
			d[j]=int(c[i]);

//cout<<d[j];		 
		j++;

		
	// }	
	 
	// else if(int(c[i])==32)
	// { spaces++;}
 }

 //==================================================================

fclose(file);
	
	dec_2_binary(d,e,sizeof(d)/4,sizeof(e)/4);
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -