GCrypt/GCryptLib/exec/visualize-hashing-distribution.cpp

35 lines
771 B
C++

#include <iostream>
#include <GCrypt/GHash.h>
#include <BmpPP/Bmp.h>
#include "Visualize.h"
const std::string execName = "visualize-hashing-distribution";
using namespace Leonetienne::GCrypt;
using namespace Leonetienne::BmpPP;
using namespace Leonetienne::Eule;
void HashAndVisualize(const Block& b, const std::string filename) {
GHash hasher;
hasher.Digest(b);
VisualizeBlock(hasher.GetHashsum(), filename);
}
int main() {
// Get some random input
Block a;
a.FromTextString("Hello, World :3");
VisualizeBlock(a, execName+"-input-a.bmp");
HashAndVisualize(a, execName+"-output-a.bmp");
// Now flip a bit
Block b = a;
b.FlipBit(4);
VisualizeBlock(b, execName+"-input-b.bmp");
HashAndVisualize(b, execName+"-output-b.bmp");
return 0;
}