📄 iv_load.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 + -