//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