diff options
| author | Loic GUEGAN <loic@debian> | 2015-03-06 11:06:27 +0400 |
|---|---|---|
| committer | Loic GUEGAN <loic@debian> | 2015-03-06 11:06:27 +0400 |
| commit | 1c6f11fdd85f2842eab5376c25a0acce535437f8 (patch) | |
| tree | a0dc5c749e5a198a037413a76075d9e98977c99a | |
Création du projet !
| -rw-r--r-- | CryptClass/AESCrypt.cpp | 0 | ||||
| -rw-r--r-- | CryptClass/AESCrypt.hpp | 0 | ||||
| -rw-r--r-- | CryptClass/HASHCrypt.cpp | 52 | ||||
| -rw-r--r-- | CryptClass/HASHCrypt.hpp | 35 | ||||
| -rw-r--r-- | main.cpp | 33 |
5 files changed, 120 insertions, 0 deletions
diff --git a/CryptClass/AESCrypt.cpp b/CryptClass/AESCrypt.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/CryptClass/AESCrypt.cpp diff --git a/CryptClass/AESCrypt.hpp b/CryptClass/AESCrypt.hpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/CryptClass/AESCrypt.hpp 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 <string> + + +//----- 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 <iostream> +#include <string> + +//----- 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; +} |
