#include <Vigenere.h>
Inheritance diagram for Vigenere:
Public Member Functions | |
Vigenere () | |
void | SetCle (string cle) |
Permet de définir la clé de cryptage (Si besoin). | |
string | Crypter (string msg) const |
On ajoute au code ascii du caractère i le code ascii du caractère i de la clé mCle (modulo la longeur de la clé). | |
string | Decrypter (string msg) const |
On retranche au code ascii du caractère i le code ascii du caractère i de la clé mCle (modulo la longeur de la clé). | |
void | Test () |
Private Attributes | |
string | mCle |
Clé de cryptage. |
Incovénient: "Faible"
Avantages très rapide et le message crypté à la même longeur que le message original => Rapide sur un réseau.
On ne risque pas l'overflow comme le dernier caractère utile est 126 au pire des cas on va à 126+126=252<255...
Definition at line 37 of file Vigenere.h.
Vigenere::Vigenere | ( | ) | [inline] |
void Vigenere::SetCle | ( | string | cle | ) | [inline, virtual] |
string Vigenere::Crypter | ( | string | msg | ) | const [inline, virtual] |
On ajoute au code ascii du caractère i le code ascii du caractère i de la clé mCle (modulo la longeur de la clé).
msg | Le message à crypter |
Implements Cryptage.
Definition at line 49 of file Vigenere.h.
References mCle.
Referenced by Test().
00049 { 00050 string cryptage=msg; 00051 int codeAsciiMsg, codeAsciiCle; 00052 for(int i=0; i<msg.length(); i++){ 00053 codeAsciiMsg=msg[i]; 00054 codeAsciiCle=mCle[i%mCle.length()]; 00055 cryptage[i]=codeAsciiMsg+codeAsciiCle; 00056 if(cryptage[i]==0) cerr<<"CODE VAUT ZERO pour le caractère n°"<<i<<" en clair:"<<codeAsciiMsg<<" avec la clé valant "<<codeAsciiCle<<endl; 00057 } 00058 return cryptage; 00059 }
string Vigenere::Decrypter | ( | string | msg | ) | const [inline, virtual] |
On retranche au code ascii du caractère i le code ascii du caractère i de la clé mCle (modulo la longeur de la clé).
msg | Le message à décrypter |
Implements Cryptage.
Definition at line 65 of file Vigenere.h.
References mCle.
Referenced by Test().
00065 { 00066 string cryptage=msg; 00067 int codeAsciiMsg, codeAsciiCle; 00068 for(int i=0; i<msg.length(); i++){ 00069 codeAsciiMsg=msg[i]; 00070 codeAsciiCle=mCle[i%mCle.length()]; 00071 cryptage[i]=codeAsciiMsg-codeAsciiCle; 00072 } 00073 return cryptage; 00074 }
void Vigenere::Test | ( | ) | [inline] |
Definition at line 76 of file Vigenere.h.
References Crypter(), Decrypter(), and SetCle().
00076 { 00077 Vigenere v; 00078 v.SetCle("testdeVigenere"); 00079 cout<<"Cryptage de \"Test\""<<endl; 00080 cout<<v.Crypter("Test")<<endl; 00081 cout<<"Décryptage du cryptage de \"Test\""<<endl; 00082 cout<<v.Decrypter(v.Crypter("Test"))<<endl; 00083 }
Here is the call graph for this function:
string Vigenere::mCle [private] |
Clé de cryptage.
Definition at line 88 of file Vigenere.h.
Referenced by Crypter(), Decrypter(), and SetCle().