用C++ Builder的MD5控件实现软件防护

一、共享==免费?

随着Internet大行其道,“共享+注册”模式日渐成为程序员发布自己软件的主要手段,但是随之而来的破解手段也越来越高明。如何保护自己的劳动成果不被暴力破解或修改?用MD5摘要值验证是一个很常用的方法。

MD5作为一个公开算法,实现的方法很多,比如开源软件、Windows自带的API等,C++ BuilderDelphi中集成的Indy里面也有现成的MD5控件。用API实现MD5虽然效率高,但是毕竟太繁琐,具体方法可以参阅MSDNcrypt开头的那几个函数说明。用C++ BuilderMD5控件虽然方便,但是速度较慢,而且只能处理以’/0’结尾的字符串,所以要用这个控件还需要我们对待验证数据做一些预处理。预处理的关键在于把较重要的内容挑出来计算,这样一方面可以去除’/0’,另一方面可以极大减少待验证内容的长度,只计算关键代码的摘要值。

二、源程序祥解

先要说明的是网上和Borland Help里面对Indy MD5控件介绍很少,这段程序基本上是我自己摸索的结果,在C++ Biulder 6.0Indy 6.0下运行正常。

先在Indy misc中拖一个MD5控件,假设其namecipher,程序如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值