2026-03-26 18:15:47 -05:00
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
//| TestFile.mq5 |
|
|
|
|
|
//| Copyright 2026, MetaQuotes Ltd. |
|
|
|
|
|
//| https://www.mql5.com |
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
#property copyright "Copyright 2026, MetaQuotes Ltd."
|
|
|
|
|
#property link "https://www.mql5.com"
|
|
|
|
|
#property version "1.00"
|
|
|
|
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
//| |
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
#include "Encrypt.mqh"
|
|
|
|
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
//| Script program start function |
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
void OnStart()
|
|
|
|
|
{
|
|
|
|
|
//---
|
|
|
|
|
const string test_path = "MQLArticles\\Encryptor\\Test.txt";
|
|
|
|
|
const string test_content = "Hola mundo esto es un test de encriptacion";
|
|
|
|
|
|
|
|
|
|
//--- Creamos el archivo de prueba
|
|
|
|
|
int fh = FileOpen(test_path, FILE_WRITE | FILE_TXT | FILE_COMMON);
|
|
|
|
|
if(fh == INVALID_HANDLE)
|
|
|
|
|
{
|
|
|
|
|
Print("Fallo al crear Test.txt, error = ", GetLastError());
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
FileWriteString(fh, test_content);
|
|
|
|
|
FileClose(fh);
|
|
|
|
|
Print("Archivo creado: ", test_path);
|
|
|
|
|
|
|
|
|
|
//--- Encryptamos
|
|
|
|
|
CEncryptor encryptor;
|
|
|
|
|
CRandomSimple random;
|
|
|
|
|
encryptor.SetAleatoryKey(CRYPT_AES256, RandomSimpleGenerateRandomUchar, &random);
|
|
|
|
|
Print("Key = ", encryptor.Key());
|
|
|
|
|
|
|
|
|
|
if(!encryptor.EncryptFile(test_path, true, CRYPT_AES256, true, ".enc"))
|
|
|
|
|
{
|
|
|
|
|
Print("Fallo al encriptar");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
Print("Archivo encriptado: ", test_path + ".enc");
|
|
|
|
|
|
|
|
|
|
//--- Desencryptamos
|
|
|
|
|
const string enc_file = test_path + ".enc";
|
2026-03-27 09:40:19 -05:00
|
|
|
if(!encryptor.DecryptFile(enc_file, true, CRYPT_AES256, false, "-")) // Quiatrmos el .enc (sobreescribimos)
|
2026-03-26 18:15:47 -05:00
|
|
|
{
|
|
|
|
|
Print("Fallo al desencriptar");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
Print("Archivo desencriptado: ", test_path + ".enc.dec");
|
|
|
|
|
|
|
|
|
|
//--- Leemos el resultado y verificamos
|
2026-03-27 09:40:19 -05:00
|
|
|
fh = FileOpen(test_path, FILE_READ | FILE_TXT | FILE_COMMON);
|
2026-03-26 18:15:47 -05:00
|
|
|
if(fh == INVALID_HANDLE)
|
|
|
|
|
{
|
|
|
|
|
Print("Fallo al abrir archivo desencriptado, error = ", GetLastError());
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
string result = FileReadString(fh);
|
|
|
|
|
FileClose(fh);
|
|
|
|
|
|
|
|
|
|
//---
|
|
|
|
|
Print("Contenido original = ", test_content);
|
|
|
|
|
Print("Contenido recuperado = ", result);
|
|
|
|
|
}
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
|
|
|
|
|
//+------------------------------------------------------------------+
|