Enseñar cómo hacer un hash de datos en mql4

 
Compañeros programadores, enséñenme a hacer hash de datos en mql4 (parece que sé usar base64)
 
Mischek:
Sí, ahora buscan gente más joven.
"old horse don't mess around" (folk)
 
sanyooooook:
Compañeros programadores ciudadanos enséñenme a hacer el hash de los datos en mql4 (parece que sé usar base64)
¿MD5?
 
sergeev:
¿Se necesita MD5?

MD5 creo que encontré un ejemplo en alguna parte.


sha256

No he tratado con él, así que en su mayor parte no sé lo que se necesita - aquí hay un ejemplo de código en el sprp:

protected string Login= "Получить на странице доступа к API";
    protected string Password = ""Получить на странице доступа к API";
    protected string Culture ="ru-RU";

    var RequestBalance = new { Login = Login, Wmid = wmid, Culture = Culture, Signature = HashToBase64(String.Format("{0};{1};{2};{3}", Login, Password, Culture, wmid), null)};
    string Response = ITServiceJson.Balance(ForceJson(RequestBalance));

 static public byte[] Hash(string plainString, Encoding encoding)
    {
      if (plainString == null)
        throw new ArgumentNullException("plainString");

      if (encoding == null)
        encoding = Encoding.UTF8;

      return Hash(encoding.GetBytes(plainString));
    }

    static public byte[] Hash(byte[] bytes)
    {
      if (bytes == null)
        throw new ArgumentNullException("bytes");
      using (SHA256 algorithm = new SHA256Managed())
      {
        byte[] hashBytes = algorithm.ComputeHash(bytes);
        return hashBytes;
      }
    }

    public string HashToBase64(string plainString, Encoding encoding)
    {
      if (plainString == null) throw new ArgumentNullException("plainString");
      return Convert.ToBase64String(Hash(plainString, encoding));
    }
  
 

He descubierto cómo enviar una solicitud de puesto, pero necesito hacer un hash aquí Firma:

nombre destino Nota:
Inicio de sesión inicio de sesión del comerciante se da al operador en la página de acceso a la API y se utiliza para firmar las solicitudes a la bolsa en línea.
Contraseña contraseña de comerciante obtenida por el comerciante en la página de acceso a la API y utilizada para firmar las solicitudes al intercambio en línea
Wmid Wmid del comerciante Identificador WM del comerciante, cuando se trabaja con la bolsa en línea
Cultura lenguaje de consulta Define el idioma del mensaje. (ru-RU, en-EN)
Firma solicitar la firma generado a partir de los parámetros: Login + ';' + Password + ';' + Culture + ';' +Wmid
 
sergeev:
¿MD5?
No, no es MD5 exactamente
 
SHA-256 Source Code (SHA2) - PolarSSL
SHA-256 Source Code (SHA2) - PolarSSL
  • Offspark B.V.
  • tls.mbed.org
In addition to being used for the SHA-256 algorithm, the same code also performs the SHA-224 algorithm. In fact, the SHA-224 hash algorithm is nothing more than the result of the SHA-256 algorithm being cut short. The code only has a single dependency on config.h in the sha2.c source code file. You can remove this inclusion or just create a...
 

Yo, ingenuo, quería uno ya hecho.

Fui ingenuo, quería uno ya hecho.

ZS: tal vez winds tiene algunas bibliotecas incorporadas que hacen esta codificación.

Perdón por la falta de ortografía.

 
sanyooooook:

Escribe en Sharpe, Sanek, no tienes que pensar mucho ahí.

Ya voy por el cuarto intercambio, estoy implementando la api :)

sanyooooook:

ZS: Tal vez Windows tenga algunas librerías incorporadas que hagan ese tipo de encriptación.

CryptoAPI
The Cryptography API, or How to Keep a Secret
The Cryptography API, or How to Keep a Secret
  • msdn.microsoft.com
This article describes the Microsoft® Cryptography application programming interface (API) that is available with the new Windows NT® version 4.0 release and upcoming versions of Windows® 95. This article examines what is required to set up and use this new API. In order to compile the sample application you will need Microsoft Visual C++®...
 
TheXpert:

Escribe en Sharp, Sanek, no tienes que pensar mucho ahí.


Me cuesta cambiar, por eso sigo con mucl4
Razón de la queja: