Witam, chciałbym zaprezentować Wam mini bibliotekę służącą szyfrowaniu i deszyfrowaniu wiadomości.
Biblioteka służy szyfrowaniu symetrycznemu.
W algorytmach symetrycznych (ang. symmetric algorithms) nazywanych również algorytmami z kluczem tajnym, klucze szyfrujący i deszyfrujący są takie same (lub jeden można łatwo wyprowadzić z drugiego).
Szyfrowanie opiera się o algorytm XOR .
Moc kryptograficzna tego szyfru zależy od długości klucza oraz od długości tekstu ,
im dłuższy tekst tym bardziej bezpieczna wiadomość
Załączam krótki kod:
#include <iostream>
#include "Cypher.hpp"
using namespace std;
int main(void)
{
string tekst;//deklaracja string'a
getline(cin, tekst);//wprowadzamy tekst
CCypher obiekt1;//tworzymy obiekt klasy szyfrujacej
DeCypher obiekt2;//tworzymy obiekt klasy deszyfrujacej
///******///
obiekt1.Cypher(tekst);//wywolujemy metode szyfrujaca gdzie jako argument
//podajemy dowolny lancuch znakow (string) z tekstem do zaszyfrowania
///******///
obiekt2.Decypher( obiekt1.crypt_msg, obiekt1.crypt_key);
//wywolujemy metode deszyfrujaca gdzie jako argumenty lancuch znakow (string)
//z zaszyforwana wiadomoscia a drugi argument to klucz sluzacy do deszyfracji
//-------------------------------------------------
// zmienna crypt_key to string zawierajacy klucz ktory posluzyl do deszyfrowania wiadomosci
// zmienna crypt_msg to string zawierajacy zaszyfrowana wiadomosc
///*Oby dwie zmienne zwrocila metoda Cypher(tekst) (patrz 11 linijka)
///*******///
cout << obiekt2.wynik<<endl<<endl;//W zmiennej wynik znajduje się wynik operacji deszyfrowania czyli tekst
system("pause");
return 0;
}
Myślę że komentarze w kodzie wszystko wyjaśniły ewentualnie pytać śmiało.
Biblioteka w załączniku miłego korzystania.
Więcej informacji o kryptografii tutaj:
http://www.b-skrzypczyk.republika.pl/alg_sym.html
#EDIT 1
Niestety biblioteka nie obsługuje polskich znaków - ;(