[开源]用MQL4实现MD5加密
本文转载自博客园:混沌的世界
原文地址: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加密的更多相关文章
- cryptopp开源库的使用(一):md5加密
项目总是各种新需求,最近遇到需要对字符串进行md5加密,确保传输字符串的有效性. 考虑到跨平台性和通用性,选择了cryptopp开源库,这里主要是用静态库调用. 1.引入头文件和lib库 #inclu ...
- wemall app商城源码android开发MD5加密工具类
wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享android开发MD5加密工具类主要代码,供 ...
- Asp.Net Core 2.0 项目实战(7)MD5加密、AES&DES对称加解密
本文目录 1. 摘要 2. MD5加密封装 3. AES的加密.解密 4. DES加密/解密 5. 总结 1. 摘要 C#中常用的一些加密和解密方案,如:md5加密.RSA加密与解密和DES加密等, ...
- ASP.NET Core优化MD5加密
MD5是我们常用的一种加密方式,但是有朋友和我说C#自带的MD5方法碰撞阻力太低,担心安全问题 然后我这里开源一下我日常使用的优化后的MD5加密方法 代码中先创建出MD5对象后对字符串先进行MD5加密 ...
- MD5加密工具代码
找到一个开源的MD5加密工具代码,收藏起来 /** * MD5加密工具 */ public class MD5Utils { /** * byte[]字节数组 转换成 十六进制字符串 * @param ...
- 关于CryptoJS中md5加密以及aes加密的随笔
最近项目中用到了各种加密,其中就包括从没有接触过得aes加密,因此从网上各种查,官方的一种说法: 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学 ...
- Android数据加密之MD5加密
前言: 项目中无论是密码的存储或者说判断文件是否是同一文件,都会用到MD5算法,今天来总结一下MD5加密算法. 什么是MD5加密? MD5英文全称“Message-Digest Algorithm 5 ...
- android MD5加密
public class MD5Uutils { //MD5加密,32位 public static String MD5(String str) { MessageDige ...
- IOS 杂笔-9 (MD5 加密)
首先是一段对MD5的简介 *出自一位大牛之手* Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护 ...
随机推荐
- Node实践之二
先从一个简单的demo说起,用cmd打开命令提示符,输入echo Hello,大家是不是看到终端上显示出了Hello字样,事实上这就是一个简单的事件. 回到正题,相信提到node.js,免不了让人想起 ...
- Java排序算法——基数排序
- MySql 杂记
1:声明一个int变量时,设置它默认为0,而不是空或null. int 型,取值范围-2,147,483,648 到 2,147,483,647 ,默认值是 0 int是值类型,读内存区间中指定长度单 ...
- mysql中文乱码解决方法
latin1(1和l的区别,l要么没有缺缺,要么缺缺是向左的直的; 1向左的缺缺是弯曲的,应该是可以看得出来的)是8位的字符集,表示英文和西欧字母. 瑞士: Switzerland [swits2la ...
- 大熊君学习html5系列之------History API(SPA单页应用的必备------重构完结版)
一,开篇分析 Hi,大家好!大熊君又和大家见面了,(*^__^*) 嘻嘻……,这系列文章主要是学习Html5相关的知识点,以学习API知识点为入口,由浅入深的引入实例, 让大家一步一步的体会" ...
- 【转载】使用Pandas创建数据透视表
使用Pandas创建数据透视表 本文转载自:蓝鲸的网站分析笔记 原文链接:使用Pandas创建数据透视表 目录 pandas.pivot_table() 创建简单的数据透视表 增加一个行维度(inde ...
- UIScrollView和控制器
一般情况下,就设置UIScrollView所在的控制器 为 UIScrollView的delegate 设置控制器为UIScrollView的delegate有2种方法: 通过代码(self就是控制器 ...
- UVA-11991 Easy Problem from Rujia Liu?
Problem E Easy Problem from Rujia Liu? Though Rujia Liu usually sets hard problems for contests (for ...
- JavaScript类型判断instanceof与typeof对比
经常有人会在JavaScript里写如下的方法: function checkType() { var s1 = 123; var s2 = "OK"; if (s1 instan ...
- 【Go入门教程6】interface(interface类型、interface值、空interface{}、嵌入interface、反射)
interface Go语言里面设计最精妙的应该算interface,它让面向对象,内容组织实现非常的方便,当你看完这一章,你就会被interface的巧妙设计所折服. 什么是interface 简单 ...