从专业人员到超级专业人员的任何问题 - 1。 - 页 6 12345678910111213...45 新评论 Vasiliy Sokolov 2011.01.22 18:39 #51 sergeev: GetID是动态的吗? 不幸的是,是的,因为参数值可以动态改变,ID必须相应改变。 --- 2011.01.22 18:40 #52 最简单的选择是将整个参数列表转换为一个长字符串,并对该字符串采取MD5.一个较短的哈希函数。 这将使你在参数变化时具有独特性和唯一性以及动态性。 Vasiliy Sokolov 2011.01.22 19:05 #53 是否可以只从外部实现中获取MD5(例如,通过dll),或者有通过MQL4、MQL5实现的变体? Андрей 2011.01.22 19:27 #54 sergeev: 当你改变参数时,你会有独特性和不明确性以及动态性。 将没有独特性。 一般来说,长期以来一直建议使用Sha256。 因为有一种算法可以生成指定Md5的密码。 C-4: 是否可以只从外部实现中获取MD5(例如,通过dll),或者有通过MQL4或MQL5实现的变体? 你知道...如果你没有更好的事情可做--当然,在Mql中做吧。 --- 2011.01.22 19:29 #55 C-4: 是否可以只从外部实现中获取MD5(例如,通过dll),或者有通过MQL4、MQL5实现的变体? 我想你可以在网上找到这个算法,例如这里 ,或者维基。 Андрей 2011.01.22 19:31 #56 一般来说...参数和标识符的问题是1:1 java hashCode / equals。 只有当你设法将所有的参数打包成识别器,一切才会如你所愿。 也就是说,散列函数不会给你你想要的东西... --- 2011.01.22 19:32 #57 jartmailru: 将没有独特性。事实上,早就有人建议改用Sha256。 因为已经创建了一种算法,可以生成一个具有给定Md5的密码。 密码与此有什么关系?:))我们谈论的是一些类的标识符,它是临时创建的,对不同的参数是不同的。 ---------- 总的来说,C-4,我想,如果一串参数无论如何都会被创建,那么这个哈希值到底有什么意义。:) 只要比较一下这两个字符串。 Андрей 2011.01.22 19:34 #58 sergeev:密码与此有什么关系?:))我们谈论的是一些类的标识符,它是在飞行中创建的,对不同的参数是不同的。 我的回答要点: 1)Md5不会给出一个唯一的标识符 1.1)散列函数不能用于任务 2)Md5-不时尚 是的,你只需要一个对比。全部放入一个数组,然后进行二进制搜索:-)。 P.S.: 而且在C++中,你甚至不需要为此写代码... Vasiliy Sokolov 2011.01.22 19:37 #59 Уникальности не будет. И вообще уже давно рекомендуют переходить на Sha256, потому что создан алгоритм, генерирующий пароль с заданным Md5. 要解决这个问题,不需要进行加密保护。重要的是要创造一个独特的指纹。不幸的是,MD5是一个128位的哈希代码。在MQL中没有这种长度的变量类型。所以我可能会在上面实现一个更简单的Adler-32,并让它成为每个类实例的唯一32位ID号的生成器。 s.w. 如果你能详细说明第1.1点。为什么不能这样做? --- 2011.01.22 19:48 #60 jartmailru: 是的,你只需要一个对比。全部放入一个数组,然后进行二进制搜索:-)。 是的,在这种情况下,我们可以不使用哈希值。 如果这个变体适合瓦西里,我们就把所有的参数放到一个字符串中。这个字符串将是类的标识符。 12345678910111213...45 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
GetID是动态的吗?
不幸的是,是的,因为参数值可以动态改变,ID必须相应改变。
最简单的选择是将整个参数列表转换为一个长字符串,并对该字符串采取MD5.一个较短的哈希函数。
这将使你在参数变化时具有独特性和唯一性以及动态性。
当你改变参数时,你会有独特性和不明确性以及动态性。
一般来说,长期以来一直建议使用Sha256。
因为有一种算法可以生成指定Md5的密码。
是否可以只从外部实现中获取MD5(例如,通过dll),或者有通过MQL4或MQL5实现的变体?
是否可以只从外部实现中获取MD5(例如,通过dll),或者有通过MQL4、MQL5实现的变体?
我想你可以在网上找到这个算法,例如这里 ,或者维基。
只有当你设法将所有的参数打包成识别器,一切才会如你所愿。
也就是说,散列函数不会给你你想要的东西...
将没有独特性。事实上,早就有人建议改用Sha256。
因为已经创建了一种算法,可以生成一个具有给定Md5的密码。
密码与此有什么关系?:))我们谈论的是一些类的标识符,它是临时创建的,对不同的参数是不同的。
----------
总的来说,C-4,我想,如果一串参数无论如何都会被创建,那么这个哈希值到底有什么意义。:)
只要比较一下这两个字符串。
密码与此有什么关系?:))我们谈论的是一些类的标识符,它是在飞行中创建的,对不同的参数是不同的。
1)Md5不会给出一个唯一的标识符
1.1)散列函数不能用于任务
2)Md5-不时尚
是的,你只需要一个对比。全部放入一个数组,然后进行二进制搜索:-)。
P.S.: 而且在C++中,你甚至不需要为此写代码...
Уникальности не будет.
И вообще уже давно рекомендуют переходить на Sha256,
потому что создан алгоритм, генерирующий пароль с заданным Md5.
要解决这个问题,不需要进行加密保护。重要的是要创造一个独特的指纹。不幸的是,MD5是一个128位的哈希代码。在MQL中没有这种长度的变量类型。所以我可能会在上面实现一个更简单的Adler-32,并让它成为每个类实例的唯一32位ID号的生成器。
s.w. 如果你能详细说明第1.1点。为什么不能这样做?
是的,你只需要一个对比。全部放入一个数组,然后进行二进制搜索:-)。
是的,在这种情况下,我们可以不使用哈希值。
如果这个变体适合瓦西里,我们就把所有的参数放到一个字符串中。这个字符串将是类的标识符。