Toute question d'un PROFI à un SUPER PROFI - 1. - page 6

 
sergeev:
Le GetID est-il dynamique ?

Malheureusement oui, car les valeurs des paramètres peuvent être modifiées dynamiquement, l'ID doit changer en conséquence.
 

L'option la plus simple consiste à convertir l'ensemble de la liste de paramètres en une longue chaîne de caractères et à utiliser MD5. une fonction de hachage plus courte pour la chaîne.

Cela vous permettra d'être unique et de faire preuve de dynamisme lorsque les paramètres changent.

 
Est-il possible de prendre le MD5 uniquement à partir d'une implémentation externe (par exemple, via une dll) ou existe-t-il des variantes de son implémentation au moyen de MQL4, MQL5 ?
 
sergeev:

Vous aurez l'unicité, la non-ambiguïté et le dynamisme lorsque vous changerez les paramètres.

Il n'y aura pas d'unicité.
En général, il est recommandé d'utiliser Sha256 depuis longtemps,
parce qu'il existe un algorithme qui génère des mots de passe avec le Md5 spécifié.
C-4:
Est-il possible de prendre MD5 uniquement à partir d'une implémentation externe (par exemple, à travers une dll) ou existe-t-il des variantes de son implémentation au moyen de MQL4 ou MQL5 ?
Tu sais... si vous n'avez rien de mieux à faire - bien sûr, faites-le en Mql.
 
C-4:
Est-il possible de prendre le MD5 uniquement à partir d'une implémentation externe (par exemple, via une dll) ou existe-t-il des variantes de son implémentation au moyen de MQL4, MQL5 ?

Je pense que vous pouvez trouver l'algorithme sur le net. ici par exemple. ou wiki

 
En général... Le problème avec les paramètres et l'identifiant est 1:1 java hashCode / equals.
Tout se passera comme vous le souhaitez, uniquement si vous parvenez à rassembler tous les paramètres dans l'identifiant.
C'est-à-dire que les fonctions de hachage ne vous donneront pas ce que vous voulez...
 
jartmailru:
Il n'y aura pas d'unicité. En fait, il est recommandé depuis longtemps de passer à Sha256,
car un algorithme a été créé qui génère un mot de passe avec un Md5 donné.

Quel est le rapport avec les mots de passe ? :))) nous parlons d'un identifiant de classe, qui est créé à la volée et qui est différent pour différents paramètres.

----------

Et en général, C-4, j'ai pensé, si une chaîne de paramètres sera créée de toute façon, alors quel est l'intérêt de ce hachage. :)

Il suffit de comparer les deux cordes.

 
sergeev:

Qu'est-ce que le mot de passe a à voir avec ça ? :))) nous parlons d'un certain identifiant de classe, qui est créé à la volée et qui est différent pour différents paramètres.

L'essentiel de ma réponse :
1) Md5 ne donnera pas un identifiant unique
1.1) les fonctions de hachage ne peuvent pas être utilisées pour cette tâche
2) Md5- pas à la mode
Oui, vous avez juste besoin d'une comparaison. Le tout dans un tableau et ensuite une recherche binaire:-).
P.S. : Et en C++, vous n'avez même pas besoin d'écrire du code pour cela...
 


Уникальности не будет.
И вообще уже давно рекомендуют переходить на Sha256,
потому что создан алгоритм, генерирующий пароль с заданным Md5.

La crypto-protection n'est pas nécessaire pour résoudre le problème. Tout ce qui compte, c'est de créer une empreinte unique. Malheureusement, le MD5 est un code de hachage de 128 bits. Il n'existe pas de types de variables de cette longueur dans MQL. Je vais donc probablement implémenter un Adler-32 beaucoup plus simple et en faire un générateur d'un numéro d'identification unique de 32 bits pour chacune des instances de la classe.

s.w. Si vous pouvez développer le point 1.1. Pourquoi cela ne peut-il pas être fait ?

 
jartmailru:

Oui, vous avez juste besoin d'une comparaison. Le tout dans un tableau et ensuite une recherche binaire :-).

Oui. Dans ce cas, nous pouvons nous passer du hachage.

Si cette variante convient à Vasily, il suffit de mettre tous les paramètres dans une chaîne de caractères. La chaîne sera l'identifiant de la classe.