OTP Lab

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

************************OTP encryption*******************

#include <iostream>
#include<string.h>
using namespace std;
int main() {
char p[100],k[100],c[100];//array of character
int np[100],nk[100],nc[100];

cout<<"enter your plaintext: ";


cin>>p;
for(int i=0;i<strlen(p);i++){

p[i]=toupper(p[i]);
}
for(int i=0;i<strlen(p);i++){

np[i]=p[i]-'A';//B(65)-A(64)=1B

cout<<"enter your key: ";


cin>>k;

for(int i=0;i<strlen(k);i++){

k[i]=toupper(k[i]);

for(int i=0;i<strlen(k);i++){

nk[i]=k[i]-'A';
}
for(int i=0;i<strlen(p);i++){

nc[i]=np[i]+nk[i];
if(nc[i]>25){

nc[i]-=26;
}

nc[i]+='A';
c[i]=char(nc[i]);

}
cout<<"ciphertext: "<<c;

return 0;
}
************************OTP decryption*******************
#include <iostream>
#include<string.h>
using namespace std;
int main() {
char p[100],k[100],c[100];
int np[100],nk[100],nc[100];

cout<<"enter your ciphertext: ";


cin>>c;
for(int i=0;i<strlen(c);i++){

c[i]=toupper(c[i]);
nc[i]=c[i]-'A';
}

cout<<"enter your key: ";


cin>>k;

for(int i=0;i<strlen(k);i++){

k[i]=toupper(k[i]);
nk[i]=k[i]-'A';

for(int i=0;i<strlen(c);i++){

np[i]=nc[i]-nk[i];
if(np[i]<0){

np[i]+=26;
}

np[i]+='A';
p[i]=char(np[i]);

}
cout<<"plaintext: "<<p;

return 0;
}

You might also like