//Szyfr Vinegere'a - tylko szyfrowanie 
//Kryptografia grupa piątkowa 
//Jakub Wiśniewski 
#include <iostream> 
 
using  namespace  std; 
 
int  main( ) 
{ 
  char  t[ 256 ] ;   //przechowuje znaki tekstu 
  char  s[ 256 ] ;   //przechowuje znaki tekstu szyfrowania 
 
  int  i,x,y; 
  int  dlt,dls;   //zmienne dlugosci tablcy tekstu i tekstu szyfrowania 
 
 
  cout << "Program szyfrujacy wg. szyfru Vigenere'a \n " ; 
  cout << "Obslugiwany sa jedynie litery drukowane! \n " ; 
 
  cout << "\n \n Tekst jawny:\n " ; 
 
  cin .getline ( t,256 ) ;     // wpisujemy podany tekst jawny do tablicy i o 256 elementach 
 
  cout << "\n Podaj haslo szyfrowania:\n " ; 
  cin .getline ( s,256 ) ;     // wpisujemy podany tekst, ktory mam zaszyfrowac do tablicy i o 256 elementach 
 
 
  dlt= strlen ( t) ; 
  dls= strlen ( s) ; 
 
  x= dls+ 1 ; 
  y= 0 ; 
  s[ x] = 0 ; 
 
 
  if ( dlt> dls) 
  { 
             for ( x =  dls+ 1 ;  x <  dlt;  x++ ) 
             { 
                     s[ x] = s[ y] ;  
                     s[  x +  1  ]  =  0 ;          
                     y++ ; 
 
                     if ( y>= dls) 
                               y= 0 ;            
             } 
  }       
 
 
  cout << "tekst szyfrowania " << s<< "\n " ;                 
 
 
 
 
  /* 
  for(i = 0; t[i]; i++)  // przeglądamy tablice utworzoną przez kolejne wpisane znaki 
   
    if(t[i] >= 'A' && t[i] <= 'Z' && s[i] >='A' && s[i]<= 'Z') // Sprawdzamy czy jest wieksze od A i mniejsze od Z jezeli tak  
    { 
         
        t[i]=t[i]+(s[i]-65); 
         
                 
    }  
     
   //Wypisywanie tekstu: 
  cout<<"Tekst po zaszyfrowaniu \n"; 
 
  cout<< t<<"\n" ;      
  */ 
  system ( "PAUSE" ) ; 
  return  0 ; 
}  
 
 
Ly9TenlmciBWaW5lZ2VyZSdhIC0gdHlsa28gc3p5ZnJvd2FuaWUKLy9LcnlwdG9ncmFmaWEgZ3J1cGEgcGnEhXRrb3dhCi8vSmFrdWIgV2nFm25pZXdza2kKI2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkKewogIGNoYXIgdFsyNTZdOyAgLy9wcnplY2hvd3VqZSB6bmFraSB0ZWtzdHUKICBjaGFyIHNbMjU2XTsgIC8vcHJ6ZWNob3d1amUgem5ha2kgdGVrc3R1IHN6eWZyb3dhbmlhCiAgCiAgaW50IGkseCx5OwogIGludCBkbHQsZGxzOyAgLy96bWllbm5lIGRsdWdvc2NpIHRhYmxjeSB0ZWtzdHUgaSB0ZWtzdHUgc3p5ZnJvd2FuaWEKCiAgICAKICBjb3V0PDwiUHJvZ3JhbSBzenlmcnVqYWN5IHdnLiBzenlmcnUgVmlnZW5lcmUnYSBcbiI7CiAgY291dDw8Ik9ic2x1Z2l3YW55IHNhIGplZHluaWUgbGl0ZXJ5IGRydWtvd2FuZSEgXG4iOwogICAgCiAgY291dDw8IlxuXG5UZWtzdCBqYXdueTpcbiI7CiAgCiAgY2luLmdldGxpbmUodCwyNTYpOyAgICAvLyB3cGlzdWplbXkgcG9kYW55IHRla3N0IGphd255IGRvIHRhYmxpY3kgaSBvIDI1NiBlbGVtZW50YWNoCiAgCiAgY291dDw8IlxuUG9kYWogaGFzbG8gc3p5ZnJvd2FuaWE6XG4iOwogIGNpbi5nZXRsaW5lKHMsMjU2KTsgICAgLy8gd3Bpc3VqZW15IHBvZGFueSB0ZWtzdCwga3RvcnkgbWFtIHphc3p5ZnJvd2FjIGRvIHRhYmxpY3kgaSBvIDI1NiBlbGVtZW50YWNoCiAgCiAgCiAgZGx0PXN0cmxlbih0KTsKICBkbHM9c3RybGVuKHMpOwogIAogIHg9ZGxzKzE7CiAgeT0wOwogIHNbeF09MDsKICAKCiAgaWYoZGx0PmRscykKICB7CiAgICAgICAgICAgICBmb3IoeCA9IGRscysxOyB4IDwgZGx0OyB4KyspCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHNbeF09c1t5XTsgCiAgICAgICAgICAgICAgICAgICAgIHNbIHggKyAxIF0gPSAwOyAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICB5Kys7CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBpZih5Pj1kbHMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5PTA7ICAgICAgICAgICAKICAgICAgICAgICAgIH0KICB9ICAgICAgCgogIAogIGNvdXQ8PCJ0ZWtzdCBzenlmcm93YW5pYSAiPDxzPDwiXG4iOyAgICAgICAgICAgICAgICAKICAKICAKICAKICAKICAvKgogIGZvcihpID0gMDsgdFtpXTsgaSsrKSAgLy8gcHJ6ZWdsxIVkYW15IHRhYmxpY2UgdXR3b3J6b27EhSBwcnpleiBrb2xlam5lIHdwaXNhbmUgem5ha2kKICAKICAgIGlmKHRbaV0gPj0gJ0EnICYmIHRbaV0gPD0gJ1onICYmIHNbaV0gPj0nQScgJiYgc1tpXTw9ICdaJykgLy8gU3ByYXdkemFteSBjenkgamVzdCB3aWVrc3plIG9kIEEgaSBtbmllanN6ZSBvZCBaIGplemVsaSB0YWsgCiAgICB7CiAgICAgICAgCiAgICAgICAgdFtpXT10W2ldKyhzW2ldLTY1KTsKICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgfSAKICAgIAogICAvL1d5cGlzeXdhbmllIHRla3N0dToKICBjb3V0PDwiVGVrc3QgcG8gemFzenlmcm93YW5pdSBcbiI7CgogIGNvdXQ8PCB0PDwiXG4iIDsgICAgIAogICovCiAgc3lzdGVtKCJQQVVTRSIpOwogIHJldHVybiAwOwp9IAoK