CryptoByLeo/Src/Hash/Test/Test512.mq5

67 lines
2.2 KiB
MQL5
Raw Permalink Normal View History

2026-08-13 14:01:20 -05:00
//+------------------------------------------------------------------+
//| Test512.mq5 |
//| Copyright 2026, Niquel Mendoza |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2026, Niquel Mendoza"
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
#include "..\\SHA512.mqh"
#include "..\\..\\Utils\\Main.mqh"
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//---
2026-08-13 17:24:10 -05:00
uchar fin[CRYPTOBYLEO_SHA512_SIZET_FHASH];
//---
/* uchar data[];
ArrayResize(data, 3);
data[0] = 'a';
data[1] = 'b';
data[2] = 'c';
TSN::CCryptoHash::SHA512(data, 3, fin);
string out = "";
TSN::CEncrptUtils::ToHexUpper(fin, out);
Print(out);*/
//---
int DataSizeMB = 1;
int dataSize = DataSizeMB * 1024 * 1024;
2026-08-13 14:01:20 -05:00
uchar data[];
2026-08-13 17:24:10 -05:00
ArrayResize(data, dataSize);
2026-08-13 14:01:20 -05:00
2026-08-13 17:24:10 -05:00
MathSrand(42);
for(int i = 0; i < dataSize; i++)
data[i] = (uchar)(MathRand() % 256);
ulong a = GetMicrosecondCount();
TSN::CCryptoHash::SHA512(data, dataSize, fin);
ulong b = GetMicrosecondCount();
double shaSeconds = (b - a) / 1000000.0;
double shaMBs = DataSizeMB / shaSeconds;
PrintFormat(" Tiempo: %.4f s", shaSeconds);
PrintFormat(" Velocidad: %.2f MB/s", shaMBs);
2026-08-13 14:01:20 -05:00
2026-08-13 17:24:10 -05:00
uchar r = 0;
for(int i = 0; i < 64; i++)
r += fin[i];
Print(r);
2026-08-13 14:01:20 -05:00
}
//+------------------------------------------------------------------+
// DDAF35A193617ABACC417349AE20413112E6FA4E89A97EA20A9EEEE64B55D39A2192992A274FC1A836BA3C23A3FEEBBD454D4423643CE80E2A9AC94FA54CA49F
// ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f