summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoic GUEGAN <loic@debian>2015-03-07 10:56:15 +0400
committerLoic GUEGAN <loic@debian>2015-03-07 10:56:15 +0400
commit88b5076459ea44947228e7ab53199b86e4d65871 (patch)
treee1ee624b3dd71f9b079bf4c7ccf0c9b7d4a59f65
parent1c6f11fdd85f2842eab5376c25a0acce535437f8 (diff)
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.
-rw-r--r--CryptClass/HASHCrypt.cpp31
-rw-r--r--CryptClass/HASHCrypt.hpp28
2 files changed, 42 insertions, 17 deletions
diff --git a/CryptClass/HASHCrypt.cpp b/CryptClass/HASHCrypt.cpp
index 4ca3ee2..ec25bf6 100644
--- a/CryptClass/HASHCrypt.cpp
+++ b/CryptClass/HASHCrypt.cpp
@@ -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;
+}
diff --git a/CryptClass/HASHCrypt.hpp b/CryptClass/HASHCrypt.hpp
index 2b7fc96..6090c92 100644
--- a/CryptClass/HASHCrypt.hpp
+++ b/CryptClass/HASHCrypt.hpp
@@ -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
};