Mise à jour de la classe pour plus de sécurité :

Plus d'attribut chain, les attributs contiennent
le hash code de la chaine passer en paramètre lors
de l'initialisation.
Mise à jour des commentaires.
This commit is contained in:
Loic GUEGAN 2015-03-07 10:56:15 +04:00
parent 1c6f11fdd8
commit 88b5076459
2 changed files with 42 additions and 17 deletions

View file

@ -4,22 +4,24 @@
//Constructeur
HASHCrypt::HASHCrypt(std::string chain){
this->chain=chain; //Initialisation de l'attribut chain
this->MD5_32=this->initMD5_32(chain); //Initialisation MD5 sur 32bits
this->MD5_128=this->initMD5_128(chain); //Initialisation MD5 sur 128bits
}
//Destructeur
HASHCrypt::~HASHCrypt(){
}
//Retourne la somme de controle MD5 sur 32 bits de l'attribut chain
std::string HASHCrypt::getMD5_32(){
//Retourne la somme de controle MD5 sur 32 bits
std::string HASHCrypt::initMD5_32(std::string chain){
//Calcule de la somme de controle MD5 dans un type byte à partir de l'attribut chain
//Calcule de la somme de controle MD5 dans un type byte à partir du paramètre chain
CryptoPP::Weak1::MD5 hash;
byte digest[ CryptoPP::Weak1::MD5::DIGESTSIZE ];
hash.CalculateDigest( digest, (byte*) this->chain.c_str(), this->chain.length() );
hash.CalculateDigest( digest, (byte*) chain.c_str(), chain.length() );
//Convertion du hash en std::string
CryptoPP::HexEncoder encoder;
@ -32,13 +34,13 @@ std::string HASHCrypt::getMD5_32(){
return output;
}
//Retourne la somme de controle MD5 sur 128 bits de l'attribut chain
std::string HASHCrypt::getMD5_128(){
//Retourne la somme de controle MD5 sur 128 bits
std::string HASHCrypt::initMD5_128(std::string chain){
//Calcule de la somme de controle MD5 dans un type byte à partir de l'attribut chain
//Calcule de la somme de controle MD5 dans un type byte à partir du paramètre chain
CryptoPP::Weak1::MD5 hash;
byte digest[ CryptoPP::Weak1::MD5::DIGESTSIZE * 4 ];
hash.CalculateDigest( digest, (byte*) this->chain.c_str(), this->chain.length() );
hash.CalculateDigest( digest, (byte*) chain.c_str(), chain.length() );
//Convertion du hash en std::string
CryptoPP::HexEncoder encoder;
@ -50,3 +52,14 @@ std::string HASHCrypt::getMD5_128(){
//Retourne la sortie de la convertion
return output;
}
//Getter MD5_32
std::string HASHCrypt::getMD5_32(){
return this->MD5_32;
}
//Getter MD5_128
std::string HASHCrypt::getMD5_128(){
return this->MD5_128;
}

View file

@ -4,32 +4,44 @@
//----- Includes crypto++ -----
#define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1
//Pour le calcule de la somme de controle MD5
#include "crypto++/md5.h"
#include <crypto++/md5.h>
//Pour la convertion en hexadécimal et vice-versa
#include "crypto++/hex.h"
#include <crypto++/hex.h>
/*----- Description -----
Classe executant divers fonctions de hashage sur
un attribut chain en utilisant la bibiothèque crypto++
Classe executant divers fonctions de hachage sur
un paramètre donné à l'initialisation, ainsi celui-ci
n'est présent en mémoire qu'à l'initialisation.
Utilise la bibliothèque crypto++
*/
class HASHCrypt{
public:
//Constructeur
HASHCrypt(std::string chain);
//Destructeur
~HASHCrypt();
std::string getMD5_32(); //Calcule de la somme de controle MD5 sur 32bit
std::string getMD5_128(); //Calcule de la somme de controle MD5 sur 128bit
std::string getMD5_32(); //Retourne MD5_32
std::string getMD5_128(); //Retourne MD5_128
private:
std::string chain; //Attribut paramètre des fonctions de hashage
//Calcule de MD5 sur 32bits
std::string initMD5_32(std::string chain);
//Calcule de MD5 sur 128 bits
std::string initMD5_128(std::string chain);
std::string MD5_32; //Attribut MD5 sur 32bits
std::string MD5_128; //Attribut MD5 sur 128 bits
};