Wednesday, August 10, 2016

Caesar Cipher

#include <iostream>
using namespace std;

class Caesar
{
  int key;
  string plain;
  string cipher;
  public:
    void setKey(int key)
    {
      this->key = key;
    }
    void setPlain(string plain)
    {
      this->plain = plain;
    }
    void setCipher(string cipher)
    {
      this->cipher = cipher;
    }
    void encrypt()
    {
      for(int i=0;i<plain.length();i++)
      {
        if(isalpha(plain[i]))
        {
          if(islower(plain[i]))
          cipher += (plain[i]+key-'a')%26+'a';
          else
          cipher += (plain[i]+key-'A')%26+'A';
        }
        else
        cipher += plain[i];
      }
    }
    void decrypt()
    {
      for(int i=0;i<cipher.length();i++)
      {
        if(isalpha(cipher[i]))
        {
          if(islower(cipher[i]))
          plain += (cipher[i]-key-'a'+26)%26+'a';
          else
          plain += (cipher[i]-key-'A'+26)%26+'A';
        }
        else
        plain += cipher[i];
      }
    }
  string getPlainText()
  {
    return plain;
  }
  string getCipherText()
  {
    return cipher;
  }
};

int main() 
{
  Caesar caesar;
  int choice;
  string plain,cipher;
  int key;
  cout<<"Press 1 for encryption, 2 for decryption-";
  cin>>choice;
  if(choice == 1)
  {
    /* encryption */
    cout<<"Enter key-";
    cin>>key;
    cout<<"Enter plain text-";
    cin>>plain;
    caesar.setKey(key);
    caesar.setPlain(plain);
    caesar.encrypt();
    cout<<"Cipher text = "<<caesar.getCipherText()<<endl;
  }
  else if(choice == 2)
  {
    /* decryption */
    cout<<"Enter key-";
    cin>>key;
    cout<<"Enter cipher text-";
    cin>>cipher;
    caesar.setKey(key);
    caesar.setCipher(cipher);
    caesar.decrypt();
    cout<<"Plain text = "<<caesar.getPlainText()<<endl;
  }
  return 0;
}


Blogger Comments:


Emoticon Emoticon

Most read this week!