软件加密狗简单实现

  最近有个项目,老板提出来说要给软件加上加密狗,给用户一些使用限制。没法子,老板怎么说就得怎么做了。起初还以为加密狗不是一个简单的东西,接触后才知其实是很容易实现的。现在对加密狗的具体使用做一个记录。(说明:以下针对的是safenet品牌的软件加密狗,其他产品本人没去研究,可能会有一些差异)

购买了软件加密狗的开发套件,厂家提供了一些各种语言的使用案例,开发人员稍微研究一下都可以很好的将它嵌入到自己的软件中了。

以下是我使用过程中的一些理解,让大家对他有个了解,其实是很简单的。

1、  声明Dog dog=new Dog(100);(100是软件狗的存储空间,单位是字节)

2、  读取的参数设置

dog.DogAddr=0;   //读取的开始地址

         dog.DogBytes=100; //读取的字节数

3、   读取信息  dog.ReadDog();//厂家提供的dll中的方法

4、 判断是否读取成功,dog.Retcode//值是0,读取成功;否则,读取失败(通常用来判断是否有加密狗存在)

5、 在读取成功的情况下,获取加密狗里面的存储信息(通常存储用户名、机器码、时间等,用来控制用户数量)

         char[] chTemp = newchar[100];

         for(int i = 0; i < 100; i++)

         {

             chTemp[i] = (char)dog.DogData[i];

         }

6、写入加密狗的方法 dog.WriteDog

     总体流程是这样的:

重要提示:如果在程序中只是作简单的判断,如:if(dog.ReadDog()==0),这样即使加密狗的加密算法再复杂,黑客只要对代码稍作修改就可以很容易的绕过你的判断,同样可以达到破解的目的。庆幸的是,厂家已经想到了这一点,在开发套件中提供了一些技巧,例如:

If(Random(10)==5)

{

     RetCode=WriteDog()

     …

}

If(Random(10)==7)

{

     RetCode=ReadDog()

     …

}

此外还有很多技巧,如多线程、队列等等,有兴趣的朋友可以参考一下。

另外加密狗的操作是要耗时的,厂家说明延时是50-200毫秒之间,我在使用的过程中感觉很顺畅,所以这一点是没问题的。

总结(引用别人的两句话,但是也是我的体会):

1、如果您想不要花太多心思到加密上而想要一个很强的加密,加密狗是最好的选择。

2、花点时间考虑你自己的软件,看看它是否值得保护?如果没人用你的软件,保护也就没有意义了。

?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值