class CBcrypt
Класс для операций шифрования и дешифрования данных AES-256
Сообщите нам, если считаете, что материал размещён без разрешения.
Обращение по товару «bcrypt.mqh» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
Библиотека bcrypt.mqh для платформы MQL5 предоставляет класс CBcrypt, предназначенный для шифрования и дешифрования данных с использованием алгоритма AES-256. Класс наследуется от CObject и использует встроенные функции платформы CryptEncode и CryptDecode для выполнения операций.
Библиотека позволяет задавать первичный и вторичный ключи шифрования, а также поддерживает инициализацию с использованием значений по умолчанию. Данные передаются в виде строк и возвращаются в виде шестнадцатеричного представления после шифрования.
Класс содержит методы для установки данных, их шифрования и дешифрования, а также вспомогательные функции преобразования между массивами байтов и шестнадцатеричными строками.
Классов: 1 · методов: 5 · конструкторов: 1 · деструкторов: 1 · отдельных функций: 0
class CBcrypt
Класс для операций шифрования и дешифрования данных AES-256
CBcrypt()
Конструктор класса, инициализирующий пустые ключи и данные
~CBcrypt()
Деструктор класса
void Init(string primary_key,string secondary_key)
Устанавливает первичный и вторичный ключи и генерирует ключ шифрования
void InitDefault()
Устанавливает ключи шифрования по умолчанию
void SetData(const string data)
Устанавливает текстовые данные для последующего шифрования
string Encrypt(const string text)
Шифрует текст с использованием AES-256 и возвращает результат в шестнадцатеричном формате
string Decrypt(string hexData)
Дешифрует шестнадцатеричные данные с использованием AES-256 и возвращает исходный текст
#property version "1.2"
#include <Object.mqh>
class CBcrypt : public CObject
{
protected:
string m_key_p; // Primary key
string m_key_s; // Secondary key
uchar m_key_m[]; // Master Key
string m_data; // String data
uchar m_udata[]; // Uchar data array
public:
CBcrypt();
~CBcrypt();
void Init(string primary_key,string secondary_key=NULL);
void InitDefault();
void SetData(const string data);
string Encrypt(const string text);
string Decrypt(string hexData);
protected:
void GenerateKey();
string ArrayToHex(uchar &arr[],int count=-1);
string HexToString(string hex,uchar &decode[]);
};
CBcrypt::CBcrypt(void) : m_key_p(""),
m_key_s(""),
m_data("")
{
}
CBcrypt::~CBcrypt()
{
}
string CBcrypt::Encrypt(const string text)
{
m_data=text;
StringToCharArray(m_data,m_udata);
uchar dst[];
int res=CryptEncode(CRYPT_AES256,m_udata,m_key_m,dst);
if(res>0)
return ArrayToHex(dst);
return "-1,error";
}
string CBcrypt::Decrypt(const string hexData)
{
uchar decodedHex[],src[];
HexToString(hexData,decodedHex);
int res=CryptDecode(CRYPT_AES256,decodedHex,m_key_m,src);
if(res>0)
{
return CharArrayToString(src);
}
return "-1,error";
}
void CBcrypt::Init(string primary_key=NULL,string secondary_key=NULL)
{
m_key_p=primary_key;
m_key_s=secondary_key;
GenerateKey();
}
void CBcrypt::InitDefault(void)
{
m_key_p="7E846B635877D53A2BD51B320D9453407E8F4C22C104E1E9481783A50FADD162";
m_key_s=(string)AccountInfoInteger(ACCOUNT_LOGIN);
GenerateKey();
}
void CBcrypt::SetData(const string text)
{
m_data=text;
StringToCharArray(m_data,m_udata);
}Показано первые 50% кода (символов: 2698)
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.