commit 1c6f11fdd85f2842eab5376c25a0acce535437f8 Author: Loic GUEGAN Date: Fri Mar 6 11:06:27 2015 +0400 Création du projet ! diff --git a/CryptClass/AESCrypt.cpp b/CryptClass/AESCrypt.cpp new file mode 100644 index 0000000..e69de29 diff --git a/CryptClass/AESCrypt.hpp b/CryptClass/AESCrypt.hpp new file mode 100644 index 0000000..e69de29 diff --git a/CryptClass/HASHCrypt.cpp b/CryptClass/HASHCrypt.cpp new file mode 100644 index 0000000..4ca3ee2 --- /dev/null +++ b/CryptClass/HASHCrypt.cpp @@ -0,0 +1,52 @@ +#include "HASHCrypt.hpp" + + + +//Constructeur +HASHCrypt::HASHCrypt(std::string chain){ + this->chain=chain; //Initialisation de l'attribut chain +} + +//Destructeur +HASHCrypt::~HASHCrypt(){ +} + + + +//Retourne la somme de controle MD5 sur 32 bits de l'attribut chain +std::string HASHCrypt::getMD5_32(){ + + //Calcule de la somme de controle MD5 dans un type byte à partir de l'attribut chain + CryptoPP::Weak1::MD5 hash; + byte digest[ CryptoPP::Weak1::MD5::DIGESTSIZE ]; + hash.CalculateDigest( digest, (byte*) this->chain.c_str(), this->chain.length() ); + + //Convertion du hash en std::string + CryptoPP::HexEncoder encoder; + std::string output; + encoder.Attach( new CryptoPP::StringSink( output ) ); + encoder.Put( digest, sizeof(digest) ); + encoder.MessageEnd(); + + //Retourne la sortie de la convertion + return output; +} + +//Retourne la somme de controle MD5 sur 128 bits de l'attribut chain +std::string HASHCrypt::getMD5_128(){ + + //Calcule de la somme de controle MD5 dans un type byte à partir de l'attribut chain + CryptoPP::Weak1::MD5 hash; + byte digest[ CryptoPP::Weak1::MD5::DIGESTSIZE * 4 ]; + hash.CalculateDigest( digest, (byte*) this->chain.c_str(), this->chain.length() ); + + //Convertion du hash en std::string + CryptoPP::HexEncoder encoder; + std::string output; + encoder.Attach( new CryptoPP::StringSink( output ) ); + encoder.Put( digest, sizeof(digest) ); + encoder.MessageEnd(); + + //Retourne la sortie de la convertion + return output; +} diff --git a/CryptClass/HASHCrypt.hpp b/CryptClass/HASHCrypt.hpp new file mode 100644 index 0000000..2b7fc96 --- /dev/null +++ b/CryptClass/HASHCrypt.hpp @@ -0,0 +1,35 @@ +//----- Includes std ----- + +#include + + +//----- Includes crypto++ ----- +#define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1 + +//Pour le calcule de la somme de controle MD5 +#include "crypto++/md5.h" +//Pour la convertion en hexadécimal et vice-versa +#include "crypto++/hex.h" + + +/*----- Description ----- +Classe executant divers fonctions de hashage sur +un attribut chain en utilisant la bibiothèque crypto++ +*/ + +class HASHCrypt{ + + public: + HASHCrypt(std::string chain); + ~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 + + + + private: + std::string chain; //Attribut paramètre des fonctions de hashage + + +}; diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..846f03b --- /dev/null +++ b/main.cpp @@ -0,0 +1,33 @@ +//----- Includes std ----- + +#include +#include + +//----- Includes personnal Class ----- +#include "CryptClass/HASHCrypt.hpp" + +//----- Prototype ----- +void aff(std::string chaine); + + + + +//----- Program Start ----- +int main(){ + + HASHCrypt hash= HASHCrypt("Chaine"); + + aff(hash.getMD5_32()); + + return 0; + +} + + + + +//---- Functions ----- + +void aff(std::string chaine){ + std::cout << chaine; +}