Code:
#include iostream
#include vector
#include stdlib.h
using namespace std;
void to_upper_case(vector
{
for (int i = 0; i < len; i++)
{
if (text[i] >= 97 && text[i] <= 122)
text[i] -= 32;
}
}
void print_string(vector
{
for (int i = 0; i < len; i++)
{
cout << (char) (text[i] + 65);
}
cout << endl;
return;
}
size_t get_input(vector
{
char a;
while (1)
{
a = getchar();
if (a == '\n')
break;
msg.push_back(a);
}
return msg.size();
}
int main()
{
vector
vector
vector
int *p;
int i;
size_t len;
cout << "Enter Message to Encrypt:";
len = get_input(msg);
to_upper_case(msg, len);
p = (int*) malloc(msg.size() * sizeof(int));
for (i = 0; i < len; i++)
{
p[i] = rand() % 26;
if (msg[i] >= 65 && msg[i] <= 90)
enc_msg.push_back((char) ((msg[i] - 65 + p[i]) % 26));
else if (msg[i] >= 97 && msg[i] <= 122)
enc_msg.push_back((char) ((msg[i] - 97 + p[i]) % 26));
else
enc_msg.push_back((char) msg[i]);
}
cout << "\nEncoded Message:";
print_string(enc_msg, len);
cout << "\nKey for decryption:\n";
for (i = 0; i < len; i++)
{
cout << (char) (p[i] + 65);
}
cout << endl;
cout << "\nDecrypted Message:";
for (i = 0; i < len; i++)
{
if ((enc_msg[i] - p[i]) < 0)
dec_msg.push_back((char) (enc_msg[i] - p[i] + 26));
else if ((enc_msg[i] - p[i]) >= 0)
dec_msg.push_back((char) (enc_msg[i] - p[i]));
else
dec_msg.push_back((char) enc_msg[i]);
}
print_string(dec_msg, len);
return 0;
}
Output:
Enter Message to Encrypt: This is the demonstration of OTP algorithm
Encoded Message:IOYYaCEaTFPaOJPLSAKTVLKLTaPBaTGFaUICTENHGH
Key for decryption:
PHQGHUMEAYLNLFDXFIRCVSCXGGBWKFNQDUXWFNFOZV
Decrypted Message:THISZIS]THETDEMONSTRATION[OFWOTP^ALGORITHM
------------------
(program exited with code: 0)
Press return to continue
More C++ Programs: