利用U盘进行软件加密的方法
2011-02-09 16:00
489 查看
一般的U盘不具备加密的功能,虽然U盘和加密狗外形有一些相似,但是内部完全不一样的,U盘只是一个存储器芯片和简单的附属电路,而现在的智能卡加密狗都具有一个单独的CPU或者加密芯片,可以执行相当复杂的加密算法。
有的软件开发商有这样一种需求,就是使用U盘发布软件的同时,想要节约成本,防止U盘中的软件被复制,但又不想再购买昂贵的加密狗,因此想要把软件绑定在U盘上执行,当U盘拔下来的时候,软件就不能正常运行,和我先前介绍的绑定硬件指纹相似,使用绑定U盘的方式加密软件。
在对软件安全不是特别在意的情况下,可以在软件中采用绑定U盘内部ID的方式来实现这种加密,先使用程序将U盘的ID读出来,然后根据这个ID生成License文件,当解密者将U盘内的文件复制到其他电脑的时候,软件执行过程中读取U盘ID失败,因此就无法校验License。
通常情况下两个U盘的ID是不相同的,因此即使将软件复制到另外一个U盘,软件执行的时候,根据U盘ID验证License,也会出现不匹配的现象,这样就实现了软件绑定U盘的加密方式。
需要指出的是,这种U盘加密并不算安全,大多数U盘厂商有内部量产工具,可以修改U盘的内部ID号码,这就存在了复制U盘的可能性,但对于普通用户来说,通常没有修改U盘内部ID的能力,因此也具有一定的加密性。
这个加密方法中,读取U盘ID号的函数的VB源代码如下所示:
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_USBHub")
For Each objItem In colItems
a = objItem.DeviceID
If InStr(a, "VID") Then b = Split(a, "\")
USB_ID = b(UBound(b))
Next
有的软件开发商有这样一种需求,就是使用U盘发布软件的同时,想要节约成本,防止U盘中的软件被复制,但又不想再购买昂贵的加密狗,因此想要把软件绑定在U盘上执行,当U盘拔下来的时候,软件就不能正常运行,和我先前介绍的绑定硬件指纹相似,使用绑定U盘的方式加密软件。
在对软件安全不是特别在意的情况下,可以在软件中采用绑定U盘内部ID的方式来实现这种加密,先使用程序将U盘的ID读出来,然后根据这个ID生成License文件,当解密者将U盘内的文件复制到其他电脑的时候,软件执行过程中读取U盘ID失败,因此就无法校验License。
通常情况下两个U盘的ID是不相同的,因此即使将软件复制到另外一个U盘,软件执行的时候,根据U盘ID验证License,也会出现不匹配的现象,这样就实现了软件绑定U盘的加密方式。
需要指出的是,这种U盘加密并不算安全,大多数U盘厂商有内部量产工具,可以修改U盘的内部ID号码,这就存在了复制U盘的可能性,但对于普通用户来说,通常没有修改U盘内部ID的能力,因此也具有一定的加密性。
这个加密方法中,读取U盘ID号的函数的VB源代码如下所示:
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_USBHub")
For Each objItem In colItems
a = objItem.DeviceID
If InStr(a, "VID") Then b = Split(a, "\")
USB_ID = b(UBound(b))
Next
相关文章推荐
- 利用U盘进行软件加密的方法
- 利用U盘进行软件加密的方法
- 利用U盘进行软件加密的方法
- 利用U盘进行软件加密(转)
- 在苹果手机上开发软件是用什么方法进行软件加密防盗版的?
- 在苹果手机上开发软件是用什么方法进行软件加密防盗版的?
- 利用“4+1”视图建模方法进行软件架构设计
- 在苹果手机上开发软件是用什么方法进行软件加密防盗版的?
- 在苹果手机上开发软件是用什么方法进行软件加密防盗版的?(转自ITeye)
- 利用磁盘的序列号进行软件加密
- Java-web中利用RSA进行加密解密操作的方法示例
- U盘进行软件加密
- python利用requests库进行接口测试的方法详解
- .Net利用Newtonsoft进行解析Json的快捷方法
- 利用String类或StringBuffer类的方法,对输入的Email地址进行有效性验证。
- 一种对软件模块进行单元测试的方法
- 网站推广方法系列之——利用网摘进行推广
- Java利用String的split方法对实验数据进行简化
- 实用命令:利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密