You are on page 1of 4

Practical No.

Name:- Siddhant Shukla


Roll No. :- C4_60

#include<iostream>
#include<string>
#include<fstream> using
namespace std; int
main()
{
int i,j,numstr[100],numkey[100],numcipher[100],numtext[100],count=1;
string str,key;
char cipher[100],plaintext[100];

//Creating File And and reading data fron it..


ofstream MyFile("sample.txt");
MyFile<<"CyberSecurity";
MyFile.close(); ifstream
File("sample.txt"); while
(getline (File, str));
//Reamoving Sapaces and Making all Char in UpperCase for String
for(i=0,j=0;i<str.length();i++){
if(str[i] != ' '){
str[j] = toupper(str[i]);
j++;
}
} str[j] = '\0';
for(i=0;i<str.length();i++){
numstr[i] = str[i]-'A';
}

do{
cout<<"\nString is Taken From File \n\n";
cout<<"Enter Key of length "<<str.length()<<" : "<<endl;
cin>>key;
if(key.length()==str.length()){
count=0;
}
}while(count);
//Reamoving Sapaces and Making all Char in UpperCase for Key
for(i=0,j=0;i<key.length();i++){ if(key[i] != ' '){ key[j] =
toupper(key[i]); j++;
}
}
key[j]='\0';
for(i=0;i<key.length();i++){
numkey[i] = key[i]-'A';
}

//Adding both string numberic values


for(i=0;i<str.length();i++){
numcipher[i] = numstr[i] + numkey[i];
}

//Converting the above 26 values in range of 25


for(i=0;i<str.length();i++){
if(numcipher[i]>25){ numcipher[i] =
numcipher[i] -26;
}
}

//printing cipher text ...


cout<<"\nOne Time Password is : "<<endl;
for(i=0;i<str.length();i++){ cipher[i] =
char(numcipher[i]+'A');
cout<<char(numcipher[i]+'A');
}
//Decription for cipher
for(i=0;i<str.length();i++){ numtext[i] =
numcipher[i] - numkey[i];
}
for(i=0;i<str.length();i++){
if(numtext[i]<0){ numtext[i]
= numtext[i] + 26;
}
}
cout<<"\n\nPlain Text After decryption is : "<<endl;
for(i=0;i<str.length();i++){ plaintext[i] =
char(numtext[i]+'A'); cout<<char(numtext[i]+'A');
}
cout<<"\n\n";
return 0;
}
Output:

You might also like