有关crypto++的问题
请问crypto++中如何使用MD5加密(使用MD5类的哪些方法?)
[解决办法]
//md5.h#ifndef CRYPTOPP_MD5_H#define CRYPTOPP_MD5_H#include "iterhash.h"NAMESPACE_BEGIN(CryptoPP)class MD5 : public IteratedHash<word32>{public: MD5(); void Final(byte *hash); unsigned int DigestSize() const {return DIGESTSIZE;} static void CorrectEndianess(word32 *out, const word32 *in, unsigned int byteCount) {#ifndef IS_LITTLE_ENDIAN byteReverse(out, in, byteCount);#else if (in!=out) memcpy(out, in, byteCount);#endif } static void Transform(word32 *digest, const word32 *data); enum {DIGESTSIZE = 16, DATASIZE = 64};private: void Init(); void HashBlock(const word32 *input);};NAMESPACE_END#endif//main.cpp#include "md5.h"#include <iostream>#pragma comment (lib,"cryptlib.lib") //加载lib文件的语句using namespace CryptoPP; //使用名字空间CryptoPPusing namespace std; //使用名字空间stdvoid main(){ byte message[128]; byte m[16]; cout<<"输入字符串"<<endl; cin.getline((char*) message,128); MD5 md5; md5.Update(message,128); md5.Final(m); for(int i=0;i<16;i++)printf("%02x",m[i]); printf("\n"); }
[解决办法]
MD5 结果应该是固定的128位