[开源]用MQL4实现MD5加密

时间:2022-09-04 17:53:22

本文转载自博客园:混沌的世界

原文地址:http://www.cnblogs.com/niniwzw/archive/2009/12/05/1617685.html

在用MQL4进行金融交易的时候,经常需要发送账号信息到服务器。这些密码一般用明文发送,很容易被拦截,如果真实的账户信息被盗,后果不堪设想。钱的问题都不是小问题。今天下午,我老婆去上海了,闲着没有事情,就贡献一个吧。

MD5 的算法非常的简单,如果想了解相关的算法请参考:RFC 1321。我的算法 基本上 遵照这个标准进行编写。

具体代码在: http://code.google.com/p/md5-in-mql4/

这个算法的效率简单测试了一下,大概是C原始版本的 1/10 的速度。

这个算法只是针对字符串的MD5 进行了优化,字符串可以支持 MQL4 中最长的字符串。如果是对大文件进行MD5 进行加密,请稍微改进一下这个算法,我在设计的时候,也做了考虑,你可以很快的转换过来。

对于脚本语言实现 MD5 加密,最麻烦的就是 右移的问题,请参考文章:用 int 类型实现  unsinged int 形式 的 右移操作 。PHP 中,可以类似的进行处理,但是JS 中,提供了 >>> 操作符,不需要用我的方法。

如果,你想用其他的脚本语言来实现,如JS,要注意 加法的安全性,我预留了一个函数:AddUnsigned 这个函数,对MQL4 可以直接加,但是对某些JS的解析器

可能会出现问题,但是修复的方法也很简单,就是把 前 16位相加,然后 把后16位进行相加。注意前16位的进位:

var lsw = (x & 0xFFFF) + (y & 0xFFFF);
    var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
    (msw << 16) | (lsw & 0xFFFF);

还有,如果,你是网上下载过来的算法,还要注意测试 中文情况下的准确性,很多算法没有考虑 中文。

虽然,各种语言差别不大,但是,也要考虑语言的差异,做到性能最优化。

现在网上有一些字典破解MD5的网站,其实,现在你不要怕他们了,你把算法中 初始的 a, b ,c, d  改一下,就变成一种新的加密算法了。

这就是你自己写算法的好处。

[开源]用MQL4实现MD5加密的更多相关文章

  1. cryptopp开源库的使用(一):md5加密

    项目总是各种新需求,最近遇到需要对字符串进行md5加密,确保传输字符串的有效性. 考虑到跨平台性和通用性,选择了cryptopp开源库,这里主要是用静态库调用. 1.引入头文件和lib库 #inclu ...

  2. wemall app商城源码android开发MD5加密工具类

    wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享android开发MD5加密工具类主要代码,供 ...

  3. Asp&period;Net Core 2&period;0 项目实战(7)MD5加密、AES&amp&semi;DES对称加解密

    本文目录 1. 摘要 2. MD5加密封装 3. AES的加密.解密 4. DES加密/解密 5. 总结 1.  摘要 C#中常用的一些加密和解密方案,如:md5加密.RSA加密与解密和DES加密等, ...

  4. ASP&period;NET Core优化MD5加密

    MD5是我们常用的一种加密方式,但是有朋友和我说C#自带的MD5方法碰撞阻力太低,担心安全问题 然后我这里开源一下我日常使用的优化后的MD5加密方法 代码中先创建出MD5对象后对字符串先进行MD5加密 ...

  5. MD5加密工具代码

    找到一个开源的MD5加密工具代码,收藏起来 /** * MD5加密工具 */ public class MD5Utils { /** * byte[]字节数组 转换成 十六进制字符串 * @param ...

  6. 关于CryptoJS中md5加密以及aes加密的随笔

    最近项目中用到了各种加密,其中就包括从没有接触过得aes加密,因此从网上各种查,官方的一种说法: 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学 ...

  7. Android数据加密之MD5加密

    前言: 项目中无论是密码的存储或者说判断文件是否是同一文件,都会用到MD5算法,今天来总结一下MD5加密算法. 什么是MD5加密? MD5英文全称“Message-Digest Algorithm 5 ...

  8. android MD5加密

    public class MD5Uutils {    //MD5加密,32位    public static String MD5(String str) {        MessageDige ...

  9. IOS 杂笔-9 (MD5 加密)

    首先是一段对MD5的简介 *出自一位大牛之手* Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护 ...

随机推荐

  1. Super Jumping&excl; Jumping&excl; Jumping&excl;

    Nowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!” is very popular in HDU. May ...

  2. div&plus;css使多行文字垂直居中&quest;

    1.单行文字: 设置height = line-height; 多行文字: 设置 padding, 自己要计算一下? vertical-align: 可以设置垂直居中, 但是只是针对本身就具有 ali ...

  3. Visio控件关闭&OpenCurlyDoubleQuote;形状”面板

    Visio.Window winShapeSearch = axDrawingControl1.Window.Windows.get_ItemFromID((int)Visio.VisWinTypes ...

  4. Cursor的moveToFirst和moveToNext

    参考: http://blog.csdn.net/kerlw/article/details/6126448 总结: 查询得到的cursor是指向第一条记录之前的,因此查询得到cursor后第一次调用 ...

  5. &period;&bsol;Obj&bsol;uCOSDemo&period;axf&colon; Error&colon; L6218E&colon; Undefined symbol LCD&lowbar;Fast&lowbar;DrawPoint &lpar;refe

    这个问题是 没有定义此函数 解决方法是 定义并声明一下 这个函数!!!

  6. 站点建设10个最好的响应的HTML5滑块插件

    大多数的最佳响应的HTML5滑块插件能够使用移动应用程序,站点建设项目,以及Web开发项目提供一些令人兴奋的功能,如无限的动画效果,百分之中的一个百响应布局设计和很多其它. 1.别急!慢慢来 功能丰富 ...

  7. Linux命令vi&sol;vim编辑

    一.vi的基本概念基本上vi可以分为三种状态,分别是命令模式(command mode).插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:a) 命令 ...

  8. 关于for循环中i&equals;0与i&equals;arr&period;length容易被忽视的bug

    for循环中的这两种写法 for(var i=0,len=arr.length;i<len;i++){ } 上面这种是最为常见也是初学者经常写的 而下面这种写法,在性能上则是比上面的更好,然而我 ...

  9. 使用oschina的git服务器图文流程 (转)

    参考了豆沙包的教程我自己也做了一遍也来写写我的心得和体会 由于报名参加了游戏蛮牛<刀塔传奇>开源项目,服务器+客户端,所以觉着不管时间怎么着,还是或多或少做点贡献吧.毕竟这种体验应该还是第 ...

  10. HTML入门6

    这篇将简单会编写网页整体网站架构,通过HTML来表示网站结构. 标题<header>,通常顶部有个大标题或图标,是网站的主要常见信息,存在于每个网页 导航<nav>,通常包含菜 ...