Crypto++ 编码与哈希(StringSource和FileSource)

1,base32,base64编码

#include "base32.h"
#include "base64.h" 
#include <string>
using namespace CryptoPP;
using namespace std;

string src = "Hello World";
string dst;
StringSource(src, true, new Base32Encoder(new StringSink(dst)));
//StringSource(src, true, new Base64Encoder(new StringSink(dst)));

&#160;

src:待处理的string类型变量或者byte数组;

true:wiki解释为:pumpall;

StringSink:添加到一个string对象;

2,MD5,SHA1,SHA256哈希签名和crc校验

#include "md5.h"
#include "sha.h"
#include "crc.h"
#include "files.h"
#include <string>
using namespace CryptoPP;
using namespace std;
MD5 md5;
SHA1 sha1;
SHA256 sha256;
CRC32 crc32;

string src = "Hello World";
string dst;
StringSource(src, true, new HashFilter(md5, new HexEncoder(new StringSink(dst))));
//StringSource(src, true, new HashFilter(sha1, new HexEncoder(new StringSink(dst))));
//StringSource(src, true, new HashFilter(sha256, new HexEncoder(new StringSink(dst))));
//StringSource(src, true, new HashFilter(crc32, new HexEncoder(new StringSink(dst))));

FileSource("test.exe", true, new HashFilter(crc32, new HexEncoder(new StringSink(dst))));
//即程序test.exe的crc32校验

你可能感兴趣的:(crypto,StringSource,FileSource)