Professional Documents
Culture Documents
OTP Lab
OTP Lab
OTP Lab
#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];
p[i]=toupper(p[i]);
}
for(int i=0;i<strlen(p);i++){
np[i]=p[i]-'A';//B(65)-A(64)=1B
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];
c[i]=toupper(c[i]);
nc[i]=c[i]-'A';
}
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;
}