CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

请大家谈谈软件的加密方法。高分相送

楼主mingyezi(飞天)2001-06-18 01:28:00 在 Delphi / VCL组件开发及应用 提问

问题点数:50、回复次数:62Top

1 楼mingyezi(飞天)回复于 2001-06-18 01:29:00 得分 0

奇怪,我怎么最多只能给38分呀,我现在有两千多分,如果来的人多,我再加。Top

2 楼mingyezi(飞天)回复于 2001-06-18 01:40:00 得分 0

我觉的如果在网上分发,最好是用序列号,如果是用光盘分发,就要看情况了,也可以采用序列号的方式,也可以读光盘的盘号。我现在真正的做第一个系统,以前都是改别人的程序,是c/s结构的,数据库用的是sqlserver2000   ,现在我想让用户不能非法拷贝,请问大家有什么高见。Top

3 楼enlightenment(破冰超人)回复于 2001-06-18 01:45:00 得分 4

http://www.csdn.net/expert/topic/124/124628.shtmTop

4 楼mingyezi(飞天)回复于 2001-06-18 02:20:00 得分 0

        谢谢你,阿明,看来你是个工作努力的编程高手,对于加密解密,我还没有看什么书,也不是太了解具体的实现方法,我们的公司比较小,主要做软硬件结合的产品,对加密一直没有重视,现在要做的系统,硬件部分的内容很少,所以要考虑到加密,防止用户非法拷贝。我也说了我的系统了,硬件部分就是个刷卡器,com接口,是个医疗保险系统。您能不能给说个比较好的加密方法。  
          加密的方法我也想了一些,都被我反对掉了,我在这里举一些我想的方法,可能都是很菜的方法。  
          1、在硬盘的某个隐秘位置放一个ini文件,程序执行的时候去找那个文件,如果没有就出错,但是这个文件只能我们自己放了,不能做到安装程序里,这就不行了,因为有的系统不是我们去安装的。  
          2、读光盘号,但是我不象让用户运行软件的时候放光盘。  
          3、序列号,这也不行,如果序列号被公开了,那就前功尽弃了。  
          4、做一个加密卡,运行之前必须用这个加密卡,这个方法,我正在考虑实现的方法,不知道有什么漏洞。  
  Top

5 楼mingyezi(飞天)回复于 2001-06-18 10:39:00 得分 0

没有人帮忙吗?Top

6 楼mingyezi(飞天)回复于 2001-06-18 11:00:00 得分 0

我点帖子加分,我现在只能加到42分了,麻烦啦,各位加密解密高手,是不是加密的方法一般都不   公开呀?Top

7 楼airhorse(编程至尊宝)回复于 2001-06-18 11:27:00 得分 2

 
        可以,用作并口(打印端口)卡,只有插上这块才能运行(有一些成熟的应用软件就是这么作的)。  
  Top

8 楼k2(脑外伤)(高级打字员)回复于 2001-06-18 11:33:00 得分 2

 
  楼上说的是软件狗吧?那还得专门定做。  
  Top

9 楼mingyezi(飞天)回复于 2001-06-18 21:36:00 得分 0

请问还有什么加密的方法?Top

10 楼lyrb(大笨蛋)回复于 2001-06-18 21:39:00 得分 2

利用硬盘或BIOS加密Top

11 楼mingyezi(飞天)回复于 2001-06-18 23:40:00 得分 0

这个我知道,具体实现方法呢?还有其他的方法吗?Top

12 楼ymkj(ymkj)回复于 2001-06-19 00:03:00 得分 2

我的软件是自己做狗加密。  
  Top

13 楼launch(飞星子)回复于 2001-06-19 03:12:00 得分 3

1.采用以运行硬件相关的方法,让非法Copy在别的机器上运行不了。  
  利用硬盘出厂的唯一序列号作为一种加密的方法不错,  
  可以限制一个Copy只能在某台机器上运行。  
  如果能跟BIOS的序列号,出厂日期等结合就更好了。  
  2.在此基础上采用一定强度的加密算法将得出来的机器相关信息  
  经过运算,得出一个与具体运行机器相关的序列号。  
  3.每次程序启动就判断序列号与该运行机器是否符合,若不符合就  
  中止或只提供有限功能。Top

14 楼mingyezi(飞天)回复于 2001-06-19 09:21:00 得分 0

我要用光盘发行这个软件,上面的方法很好,但只适合自己去装呀,如果拥护自己装的话这种方法就不行了呀。Top

15 楼woolgate()回复于 2001-06-19 10:17:00 得分 0

我觉得中国人就是无聊,  
  加密产品出了一堆,结果要解密的照样解密,倒是给正版用户造成了很大的不便,  
  浪费了时间,人力和物力,又什么意思呢?  
   
  把时间和精力放在真正有益于软件的东西上吧!!!!Top

16 楼ymkj(ymkj)回复于 2001-06-19 10:21:00 得分 2

可以在第一次安装时将硬盘序列号写入程序中,  
  以后运行时只需验证。Top

17 楼woolgate()回复于 2001-06-19 10:30:00 得分 0

再说一句:  
  道高一尺,魔高一丈!  
  道高一尺,魔高一丈!  
  道高一尺,魔高一丈!  
  道高一尺,魔高一丈!  
  Top

18 楼mingyezi(飞天)回复于 2001-06-19 13:53:00 得分 0

woolgate():  
  你说的是一些发行量比较大的软件,对于我们这种用户比较少的,采取一些加密手段也是有必要了。Top

19 楼mingyezi(飞天)回复于 2001-06-19 13:56:00 得分 0

ymkj(ymkj):  
  是用光盘发布的呀,怎么能把硬盘号放进去呀!Top

20 楼ymkj(ymkj)回复于 2001-06-19 14:33:00 得分 2

用户的硬盘号你是不知道的,也就无法放入你的光盘了。  
  我是说:  
  在用户使用你的光盘进行安装时读入用户的硬盘号,  
  并写入你的运行程序,以后运行程序时验证。  
  注:最好与你的光盘号进行一下运算!   Top

21 楼mingyezi(飞天)回复于 2001-06-19 15:01:00 得分 0

好的谢谢你,那别人直接把光盘的安装程序拷贝了,不就没有办法了吗?哦明白了,判断的时候是  
  硬盘+光盘号,这样就两个都防止了,不错不错。  
  序列号的实现方法你知道吗?Top

22 楼launch(飞星子)回复于 2001-06-19 17:45:00 得分 3

其实你可以做一个读取程序,取得相关机器信息后,按另外一种运算。  
  得出一个序号之类。让用户把该序号用Email发过来注册,  
  你得到用户端的序号后,就通过反运算,得出机器相关信息,按  
  发行程序的算法算出用户的序列号。你就可以把序列号发给用户,  
  让用户填写到ini文件或使用软件本身的登记功能进行注册了。Top

23 楼airhorse(编程至尊宝)回复于 2001-06-19 18:11:00 得分 5

 
        给你一个,超级好东东:)  
   
  各种加密方案分析    
   
    当前软件加密方法多种多样,已经不可能找出一种分类方法来把各种加密方案很好地区分开来。基本上来说可以分为依赖特定硬件的加密方案和不依赖硬件的加密方案。    
   
    一、依赖硬件的加密方案    
   
    1.   软盘加密    
   
    这是在计算机上最为古老的一种加密方案,它的原理是在软盘的特殊位置写入一些信息,软件在运行时要检验这些信息。这种软盘就好像一把钥匙。软件开发商只需一次投资购买一套加密工具就可以自己制作多张钥匙盘。此方法加密简单,成本低,在软件发展的不同时期都能看到其闪光点。但因为软驱是慢速设备,多次检查软盘上的加密点会大大拖慢程序的运行速度,所以一般加密软件只在软件运行开始的时候检查一次,这样不能避免用户用一张加密盘启动多份软件。而且由于软盘是一种易损载体,加密软件对软盘加密点的反复读写很容易造成软盘的损坏。而这张加密盘又不能备份,软件公司要不断应付用户更换加密盘的请求。另外由于这种加密技术出现得较早,硬解密的技术相对比较成熟,像双星公司的King-Copy软件能拷贝大多数的加密软盘,连加密点一起复制,复制后的软盘还是加密的。    
   
    2.   卡加密    
   
    在90年代初,各种各样的汉卡涌现出来,随之而来的卡加密技术也风行一时。由于种种问题,这种加密技术现在已经难得一见了。    
   
    3.   软件锁加密    
   
    软件锁加密是在国外首先出现的,它是一个插在计算机打印口上火柴盒大小的设备,国内俗称“加密狗”。在加密锁内部存有一定的数据和算法,计算机可以与之通讯来获得其中的数据,或通过加密锁进行某种计算。软件无法离开加密锁而运行。由于它不像卡加密那样需要打开计算机的机箱来安装,但又像加密卡那样可以随时访问,而且访问速度很快,所以一推出就受到软件开发者们的青睐。目前,所有的加密锁都提供了可编程的接口。用户可以控制加密锁中的内容,在程序中通过加密锁的接口任意访问加密锁。国外加密锁一般仅提供若干种算法,但好的加密锁不但可以向客户提供加密算法,也容许客户根据自己的意愿自定义加密算法,容许客户自定义用户ID号……比如:北京飞天诚信科技公司(网址:www.rockey.com.cn)推出的ROCKEY-IV锁就是一种加密强度很高产品(见图1)。但加密锁也是有一定欠缺的,由于加密锁利用的是计算机的打印口,而打印口原来是为打印机而设计的,软件锁一方面要保证用户加密操作的正确,同时也要保证打印机工作的正常。但由于打印机驱动程序设计上千差万别,没有任何一家的加密锁能够完全做到这一点。    
   
    但这一问题现在有希望得到彻底的解决,那就是USB接口的加密锁。USB接口的加密锁不但拥有并口加密锁的所有优点,而且没有打印上的问题,其前景十分看好。但美中不足的是只有Windows   98和Windows   2000目前能够支持USB设备。北京飞天诚信科技公司推出的一款ROCKEY-USB加密锁(见图2)其安全性优于国外产品,同时售价远远低于国外产品。    
   
      由于软件锁加密目前是软件加密的主流方案,所以再特别讲一下软件锁加密的安全性问题。    
   
    首先从软件锁的硬件方面进行研究。早先的软件锁由于硬件的加密程度不够,容易被破解。最近一年的软件锁设计大多采用了低电压CPU为基础的设计,CPU内部的程序由软件锁厂商自行写入,由于CPU内部的程序是一次写入而且不可修改、不可读出的,安全性也比较高,而且由于CPU程序是由软件锁生产厂家来写入,厂家可以根据自己的要求随时修改软件锁内部的程序,灵活性也比较高。    
   
    其次我们从软件锁软件方面考虑一下。实际上大多数黑客攻击的只是软件锁和客户的软件方面,真正从硬件角度来破解软件锁的比较少。从结构上来说,一个使用软件锁进行加密的软件分为三个部分:1)软件锁的驱动程序部分;2)软件锁提供的负责同驱动程序进行通讯的具体语言模块(.OBJ、.DLL……);3)客户软件部分。前两部分都是由软件锁的厂家来完成的,都有不同程度的加密与反跟踪成分,不易被解密。客户软件部分相对比较简单,往往是黑客攻击的主要部分。软件锁的使用环节很多,任何一个环节出了问题,都会造成整个加密方案的失败。而客户的使用方法往往是加密成败的关键,如果某个软件锁的访问最后能够归结为某个条件判别的话,那么一旦在这里被跳过,整个加密也就失去作用了。规划一套真正行之有效的加密方案,才能更好地发挥软件锁的保护功效。    
   
    4.   光盘加密    
   
    既然有软盘加密成功在先,为什么不能有光盘加密呢?但实际操作上确实是有一些问题的,因为光盘有ISO9660标准协议规定,其可控制性比软盘还要严格,想找出一种只能运行而不能复制的方式确实很困难。但现在确实已经有几家这样的产品出来了,而且加密方法也不尽相同。其主要原理是利用特殊的光盘母盘上的某些特征信息是不可再现的,而且这些特征信息大多是光盘上非数据性的内容,在光盘复制时复制不到的地方。因为投入是一次性的,对于大规模的生产这种加密方案可以将成本降得很低。而且软件数据和加密在同一载体上,对用户无疑是很方便的。但这是一种较新的加密方案,很多方面还需进一步验证。而且由于加密方式所限,不可能在用户自己刻录的光盘上实现这种加密,必须是生产线上生产的光盘才能够实现。这对于一些小规模的软件生产厂商还是有一定困难的,而且由于光盘的只读性,一旦加密有错是无法修复的。    
   
    二、不依赖硬件的加密方案    
   
    所有的带有附加硬件设备的加密方案都有一定的加密成本在里面,对于那些价格高昂的软件当然无所谓,但对于那些共享软件或价格本身就很低的软件来说,硬件加密成本可能比软件本身的售价还高,所以近年来产生了很多软加密方案。    
   
    1.   密码表加密    
   
    在软件运行的开始要求用户根据屏幕的提示信息输入特定的答案,答案往往在用户手册上的一份防复印的密码表中。用户只有输入密码正确后才能够继续运行。这种加密方案实现简单,不需要太多的成本。但用户每次运行软件都要查找密码,不免使用户感到十分不便。像台湾的游戏大多采用此加密方式。而且往往有一些有耐心者把整个密码表输入到计算机中存成一个文件,同软件的盗版一同公布出来,让加密者无可奈何。基本上是一种防君子不防小人的加密方式。    
   
    2.   序列号加密    
   
      这种加密方式从某种角度来讲不是一套完整的加密方案,现今很多Shareware(共享软件)大多采用这种加密方式,用户在软件的试用期是不需要交费的,一旦试用期满还希望继续使用这个软件,就必须到软件公司进行注册,然后软件公司会根据你提交的信息(一般是用户的名字)来生成一个序列号,当你收到这个序列号以后,并在软件运行的时候输入进去,软件会验证你的名字与序列号之间的关系是否正确,如果正确说明你已经购买了这个软件,也就没有日期的限制了。这种加密方案实现简单,而且购买过程也完全在Internet上实现,无论是开发者和购买者都觉得很方便。不过有心的人可能已经注意到软件的名字与序列号之间的验证是在你的计算机上完成的,很多黑客利用这个漏洞找出了名字和序列号之间的换算关系,编写出一种叫KeyMaker的程序,你只要输入你的名字,这个程序会帮助你计算出序列号,再将你的名字和这个序列号输入进软件中就变成正版软件了。而且也没有什么更好的方法来阻止用户扩散他注册后得到的序列号。    
   
    3.   许可证加密    
   
    这种方式从某种角度上可以说是序列号加密的一个变种,你从网上下载的或购买过来的软件并不能直接使用,软件在安装时或运行时会对你的计算机进行一番检测,并根据检测结果生成一个你的计算机的特定指纹,这个指纹可以是一个小文件,也可以是一串谁也看不懂的数,你需要把这个指纹数据通过Internet、E-mail、电话、传真等方式发送到开发商那里,开发商再根据这个指纹给你一个注册码或注册文件,你得到这个注册码或注册文件并按软件要求的步骤在你的计算机上完成注册后方能使用。这个方法的买卖也是完全通过网络来进行的,而且用户购买的软件被限制只能在他自己的计算机上面运行,换到其他的计算机上,这个注册码或注册文件可能不再有效。但用户更换某些硬件设备也可能造成注册码的失效,而且用户得到软件后在完成注册工作前会有一段时间无法使用。    
   
    加密方案涉及的主要技术    
   
    1.外壳加密    
   
    “外壳”这个词估计是中国人独创的,我觉得比较生动贴切,它的意思就是给可执行的文件加上一个外壳。用户执行的实际上是这个外壳的程序,而这个外壳程序负责把用户原来的程序在内存中解开压缩,并把控制权交还给解开后的真正的程序,由于一切工作都是在内存中运行,用户根本不知道也不需要知道其运行过程,并且对执行速度没有什么影响。    
   
    如果在外壳程序中加入对软件锁或钥匙盘的验证部分,它就是我们所说的外壳加密了。其实外壳加密的作用还不止于此,在Internet上面有很多程序是专门为加壳而设计的,它对程序进行压缩或根本不压缩,它的主要特点在于反跟踪,加密代码和数据,保护你的程序数据的完整性。如果你不希望你的程序代码被黑客修改,如果你的程序不希望被人跟踪调试,如果你的算法程序不想被别人静态分析,这种外壳程序就是为你设计的。    
   
    需要注意的是,有很多网上免费的外壳加密程序兼容性很差,加密后的程序在某些计算机或某些操作系统下无法运行。    
   
    2.序列号加密中的数学算法    
   
    大多数软件加密本身的实现都是一种编程上的技巧。但近几年来随着序列号加密程序的普及,数学算法在软件加密中的比重越来越大了。    
   
    我们先来看看在因特网上大行其道的序列号加密的工作原理。当用户从网络上下载某个Shareware—共享软件后,一般都有使用时间上的限制,当过了共享软件的试用期后,你必须到这个软件的公司去注册后方能继续使用。注册过程一般是用户把自己的私人信息(一般主要指名字)连同信用卡号码告诉给软件公司,软件公司会根据用户的信息计算出一个序列码出来,在用户得到这个序列码后,按照注册需要的步骤在软件中输入注册信息和注册码,其注册信息的合法性由软件验证通过后,软件就会取消掉本身的各种限制。    
   
    软件验证序列号的合法性过程,其实就是验证用户名与序列号之间的换算关系是否正确的过程。现有的序列号加密算法大多是软件开发者自行设计的,大部分相当简单。而且有些算法作者虽然下了很大的工夫,但效果往往达不到它所希望的结果。其实现在有很多现成的加密算法可以使用,如RSADES、MD4、MD5……只不过这些算法是为了加密密文或密码用的,同序列号加密多少有些不同,如果希望使用这些加密算法的话多少需要动点脑筋。我在这里试举一例,希望有抛砖引玉的作用:    
   
    1)在软件程序中有一段加密过的密文S;    
   
    2)密钥=F(用户名称,序列号);   (用上面的二元算法得到密钥)    
   
    3)明文D=F-DES(密文S,密钥);   (用得到的密钥来解密密文得到明文D)    
   
    4)CRC=F-CRC(明文D);   (对得到的明文用各种CRC统计)    
   
    5)检查CRC是否正确,最好多设计几种CRC算法,检查多个CRC结果是否都正确。    
   
    用这种方法,在没有一个已知正确的序列号的情况下是永远推算不出正确的序列号的。    
   
    3.解释、编译与反编译    
   
    如果你设计了一种不希望别人知道的特有的算法,所采用的加密手段往往同你的编程语言有很大的关系。对于解释语言与编译语言所编制出来的代码安全性上而言,可以说是各有优缺点。解释语言有一个致命的弱点,那就是解释语言的程序代码都是以伪码的方式存放的,一旦被人找到了伪码与源码之间的对应关系,就很容易做出一个反编译器出来,你的源程序等于被公开了一样。而编译语言因为直接把用户程序编译成机器码,再经过优化程序的优化,很难从程序返回到你的源程序的状态,但对于熟悉汇编语言的解密者来说,也很容易通过跟踪你的代码来确定某些代码的用途。    
   
    根据我对各种具有反编译器的语言的了解,Visual   Basic   5.0以上版本和C语言还没有反编译器。我的建议是:    
   
    1)千万不能编制功能强大的子程序,如果你程序的一个子程序就能印钱的话,我就不需要看别的了。    
   
    2)多用全局变量,最好是全局的临时变量,这个变量在每个子程序中的用法都不一样,程序结构可能不太好,但能造成牵一发而动全身的效果。    
   
    3)如果能用C++的话,尽量用C++来编程,最好把你的算法全用类来实现,哪怕是一个加法减法也给它定义个类,再从子类上面继承继承再继承。    
   
    4)编译后的程序不能小于500kB。    
   
    4.CPU、操作系统与编程语言    
   
    一个软件的加密性是否良好同具体的CPU、操作系统与编程语言是有很大关系的。这里有个加密方面的摩尔定律,某种技术的普及化程度越高,那么它的加密性就越差。例如我用VB写一个程序,其中调用了大量的ActiveX、COM等控件,而且针对MMX、3DNow、SSE……做了具体的优化。这样的程序比完全用VC写的程序的安全性要好得多,因为这完全是一种纯技术上的比拼,如果某个黑客对VB,ActiveX,COM的技术及内部工作原理十分清楚的话,可能破解这种程序要比用VC编写的程序容易许多。如果说软件的加密性同软件的执行效率是不冲突的话,那么软件的加密性同软件的可移植性就很难共存了,因为你不可能希望一个能锁住所有门的锁有很好的安全性。不同的平台、不同的CPU都会产生不同的加密方式,但软件必然是在特定的CPU和操作系统平台上执行,针对特定平台的优化,不但是安全性的要求,更多的是执行效率上的考虑  
  Top

24 楼airhorse(编程至尊宝)回复于 2001-06-19 18:13:00 得分 0

 
          还要不要:)  
   
      .....  
  Top

25 楼enlightenment(破冰超人)回复于 2001-06-19 18:17:00 得分 0

Top

26 楼enlightenment(破冰超人)回复于 2001-06-19 18:18:00 得分 0

还有什么,一并放马过来!!!Top

27 楼airhorse(编程至尊宝)回复于 2001-06-19 18:20:00 得分 5

 
   
        接着....  
   
  软加密技术    
   
    软加密是不依靠特别硬件来实现的对软件的保护技术。它的最大优势在于极低的加密成本。目前主要有密码法、计算机硬件校验法、钥匙盘法等。另外还有彩虹天地的Sentinel   LM和光盘狗产品,也可以算作软加密类中。    
   
    Sentinel   LM和光盘狗都提供了直接对执行文件的外壳加密工具,可以让用户非常方便地加密软件而无需更动源程序。相对于普通的软加密工具,Sentinel   LM允许用户选择软件使用期限、软件发布范围,软件使用用户数,并生成许可证密文,这样软件开发商就可以让他的用户通过网上下载许可证实现“先试用后购买”的销售方式。另外,Sentinel   LM可以根据用户需要,扩展为硬加密方案。    
   
    光盘狗是只针对光盘软件的软加密技术。它通过识别光盘上的特征来区分是原版盘还是盗版盘。该特征是在光盘压制生产时自然产生的,即由同一张母盘压出的光盘特征相同,而不同的母盘压制出的光盘即便盘上内容完全一样,盘上的特征也不一样。也就是说,这种特征是在盗版者翻制光盘过程中无法提取和复制的。普通的光盘加密技术,通常要制作特殊的母盘,进而改动母盘机,一来产生额外花费,二来耽误了软件的上市时间。而光盘狗技术不在母盘制造上动手脚,因此,开发商可以自由选择光盘厂来压制光盘。光盘狗是专门加密光盘软件的优秀方案,并且通过了中国软件评测中心的加密性能和兼容性的测试。目前在中国软件市场尚无同类技术。目前,由于光盘狗技术的低成本(每张光盘1元左右)、较好的加密强度,已经引起更多低价位软件(游戏、教育、电子读物等)厂商的兴趣,并在很多已经上市的软件中得到了广泛的应用。    
   
    软件的大众化、市场化,低价化,已经成为一个软件业摆脱经营窘境的成功运作模式,从金山软件的28元正版风暴,到后来实达铭泰等其他商家的相继跟进,着实让更多的消费者有机会有能力也有信心去使用正版软件。可以说二三十元的软件对付盗版的最大法宝就是价格,在这种价位上,软件商不可能采用功能强大的硬件加密狗(加密锁)来保护自己的利益,而是通过大的规模来获取利润的。    
   
    硬加密    
   
    如果我们仔细想一想,不是所有的软件都可以采用低价格、高销量来收回成本的。很多诸如CAD系统、医疗系统、财务系统或其他专用集成系统软件,由于它们的客户群比较专业,数量相对于前述大众化软件的用户数量要小得多,那么,它们就不太可能采取薄利多销的策略。所以,我们发现,在盗版市场中,那些正版价格在几百元、几千元以上的功能软件,成为了支撑盗版市场的卖点。    
   
    这时,软件商如果不进行一些加密方面的投资来保障正版软件的市场销售的话,就很可能血本无回了。硬加密,正是保证高档软件在市场生命周期中免受盗版侵害的功能强大的工具。    
   
    根据统计,在中国市场中,硬加密产品主要有彩虹天地Sentinel加密锁系列和加密狗系列、以色列阿拉丁加密锁、深思公司加密锁和飞天公司加密锁等系列产品。其中,加密狗产品由于在中国开发时间最早,使用量最大,加上与其他加密锁产品外观相近,所以很多软件商习惯性地把这一类硬加密产品都称为加密狗。    
   
    从外观上来看,多数加密狗是体积小如火柴盒的接在并口的保护装置。同时,为了满足市场需求,也有一些形状性能特别的产品。如体积超小的产品(例如彩虹天地的Sentinel   Super   Pro   Tiny   Key)、可接于PC扩展槽的产品(例如彩虹天地的卡式狗)、可接于PC的USB口的产品(例如彩虹天地的SentinelSuperPro-USB及USB狗)等。可以说,软件商在不断细分市场,开发满足不同用户不同需求的软件产品的同时,加密厂商也在千方百计地适应软件开发商的要求,开发各种加密产品。    
   
    彩虹天地公司两条产品线的全系列加密产品涵盖了软件开发商在各种环境下对软件保护的需求,流行品种的最新版本产品就接近20种。以下,我们择其一些代表性的产品进行介绍。    
   
    Sentinel   Super   Pro(图1是Sentinel   Super   Pro72的外观)是首次将多功能算法与读写记忆结合在一起的产品,采用新一代专用的ASIC技术,整体产品更为稳定、结构紧凑、性能更强。这种加密锁带有14个动态激活的算法和内存单元,可以用多种方式进行设置,是业内最先进的可编程加密锁。另外,开发商可以配置时间或计数器,以生成租赁或演示软件,更可以通过指定自己独特的算法来保护自己现在和将来的软件产品。与同类产品相比,它的加密强度和使用灵活性相当出色。除了硬件以外,SentinelSuperPro亦配有功能完善的软件包,包括API调用工具、可执行文件加密工具、制造工具、远程激活工具等。    
   
      图1    
   
    “用户算法植入”是1999年中兴起的新的加密思想。彩虹天地的强劲狗就是应用这种新技术的代表之作。普通的加密思想无非是在程序执行中与加密狗交换数据,而这种新加密技术,是在加密硬件中开辟一块存储区,将用户程序的一部分写进去,并交由加密狗来执行。用户程序如果没有狗,将不完整。加密狗与用户程序从而实现了最紧密的结合,令加密效果特别可靠。    
   
    USB狗是彩虹天地1999年底推出的一种小巧玲珑的加密狗(图2是彩虹天地公司的USB-yj2的外观),体积只与一个小型钥匙扣相当。它最大的特点是不占用计算机有限的并口资源,而使用扩展方便、性能稳定、可热插拔的USB接口。我们知道,传统的并口在一般计算机上只有一个,打印机、扫描仪、活动光驱等外设都会争抢这个资源,所以USB狗的出现,彻底解决了并口加密狗(加密锁)碰到的并口资源冲突的兼容性问题,必会成为今后硬加密产品的一个发展方向。    
   
      图2    
   
    微狗是彩虹天地在国内销量最大的一种智能性加密产品。它内置微处理器和200字节掉电保持存储器,允许用户自定义算法因子高达1600万种。针对国内盗版解密技术的发展,微狗内设了数据交换随机噪声技术、时间闸技术、迷宫技术专门对抗解密者的跟踪。彩虹天地提供了微狗和USB狗的双用驱动,让不便使用并口微狗的用户直接可以换插USB狗。    
   
    由加密锁和加密狗在国内的畅销可以看出,在中国软件市场中拼搏的商家,已经越来越看重加密保护和其产品的先进性,越来越倾向于加大对自己软件保护投入的力度。采用加密保护来防止软件盗版,已经是国内软件企业的共识。面对难以根绝的盗版侵害,各种先进的加密保护产品都开始大显身手,同时也促使各种各样的软件保护技术不断涌现。    
   
    同时,随着网络时代的来临,更多的计算机被应用于各种规模和形式的网络环境中。与软件保护类似,网络信息的安全,也难以被人忽视。网虫们常常担心别人盗用自己的帐号;电子商务在为防止欺诈行为而绞尽脑汁;想上网炒股又怕身份被盗用;上班用的内部网,怎样妥善保管自己的密码?凡此种种,不胜枚举,针对网络安全的加密技术也已引起越来越多的关注。    
   
    彩虹天地公司的新型产品iKey,就是面向这一安全保护新方向的工具。iKey向用户提供身份认证解决方案,而且向用户提供包括系统登录、网络管理、网络访问等在内的安全机制,同时iKey也在电子商务、在线银行、安全电子邮件、Web访问等领域大有作为。    
   
    iKey为网络访问者提供了双重认证功能(可选择功能)以加强安全性,同时ikey内设8kB~64kB的EEPROM,内置MD5哈虚(Hash)算法和随机查询数生成器,并内含安全文件系统,其中包括用户模式和管理模式。每一把iKey可以预置一个密值或存入数据证书,来确定用户的身份。由于密值或数据证书只是用来在服务器和iKey所使用的终端上分别做运算的,在认证过程中密值或数据证书没有被传递,这样就加强了iKey的安全性。也从根本上保证了用户信息的安全可靠。    
   
    总结    
   
    加密并不是一门新生的技术。针对计算机软件的加密技术从80年代就已经在国外市场广泛投入了使用。在现在的软件市场上,我们可以找到很多的工具软件、多媒体软件、设计软件、教学软件、杀毒软件都采用了软件加密措施。这些措施的使用,在一定程度上保护了软件的市场利益。这种加密措施的应用,可以对软件的非法拷贝或非法使用造成障碍。不过,科学地说,世界上没有一种加密软件(硬件),可以宣称杜绝软件解密盗版,只有难易之分。好的加密效果在于让盗版者在破解被保护的软件时,付出巨大的代价,耗费极大的时间精力,最终被迫放弃攻击。所以说,在选择加密产品时,如果有推销员向你说他的产品“绝不会被解掉”,那是不负责任的。    
   
   
  Top

28 楼airhorse(编程至尊宝)回复于 2001-06-19 18:24:00 得分 0

 
   
  hehehe^^^^^^^^  
  Top

29 楼mingyezi(飞天)回复于 2001-06-20 00:01:00 得分 0

airhorse(编程至尊宝) ,你简直就是超级加密王嘛,我看看能不能再加分,我想让这个问题多让几个回答一下,如果有人反对,我就开始给大家分配分数。呵呵。  
  其实我也   知道,每个做软件的人都不想让自己的软件被别人盗版,所以,希望大家能在这里把自己知道的东西,公开一下嘛,呵呵  
  如果哪个人的加密方法可以直接说,hi,盗版兄,你是没有办法破解我的。那大家说这个是该叫超级什么呀?Top

30 楼enlightenment(破冰超人)回复于 2001-06-20 00:11:00 得分 0

叫超人加密法吧!Top

31 楼wrongt(牛)回复于 2001-06-20 19:45:00 得分 0

  请各位高手多多留言,我来听课的!!!!Top

32 楼qaymuic(qaymuic)回复于 2001-06-20 20:03:00 得分 3

最简单的方法,如他们所说的用序列号注册,注册过程放在安装程序里,注册码加密放入注册表或其他文件,程序运行后,删除安装文件。以后运行程序,对注册码反运算,核对序列号。如果不相符,就不运行或限制运行。Top

33 楼mingyezi(飞天)回复于 2001-06-20 22:13:00 得分 0

我想了个办法,用光盘发布,另外有一个加密盘,里面有个认可程序,这个程序在第一次运行的时候不需要读计算机号(bios,硬盘),但把这个计算机号读入软盘,并删除自身,把另外一个认可程序改成自己,这个程序要用第一个程序读入的计算机号来认可。如何。大家说有什么漏洞。Top

34 楼BlueTrees(蜗牛)回复于 2001-06-20 22:20:00 得分 2

用密钥加密密钥,要求用户提供密钥,用提供的密钥解密密文,两者一致就通过Top

35 楼BlueTrees(蜗牛)回复于 2001-06-20 22:21:00 得分 2

上面这样做在程序中不提供解密后的明文作比较,防止跟踪程序后获得明文Top

36 楼fhquutuu(大海)回复于 2001-06-20 22:23:00 得分 0

关于读取硬盘序列号的具体方法,在问与答中有可以找一下!Top

37 楼czzw(山水)回复于 2001-06-20 22:25:00 得分 2

如果用网卡号也是一样的,至少我就是这么做的。Top

38 楼AutoAsm(风流总被雨打风吹去)回复于 2001-06-21 01:09:00 得分 0

    我觉得最好的方法就是不加密。  
      我以前就是做解密的,虽然现在不做,但业内还是知道一点。  
      在DOS下功能及强的指令自生成技术都可以被破戒,在WINDOWS平台下很难有什么高招。做加密只能增加开发成本。Top

39 楼mingyezi(飞天)回复于 2001-06-21 16:02:00 得分 0

你您说不加密,如何有效的保护自己的劳动成果呢?靠良心吗?Top

40 楼disney(编程乐园)回复于 2001-06-21 16:26:00 得分 0

我用过飞天诚信和RAINBOW的加密锁,我也不知道哪个好用啊。也不知道哪个效果好,只是为了增强信心。Top

41 楼strangecat()回复于 2001-06-21 17:16:00 得分 3

1.没有破不了的加密方法.  
  2.如果是集团用软件的话,可以加入网上认证--软件安装一定要跟你的服务器连接才能完成.你的服务器内可以对软件的信息进行跟踪认证,并按认证算法生成密钥发给安装软件的机器,加密程序可以用OPENSSL做.之所以说针对集团用户,是因为打官司好打些...:(.另外这招对真正的反向工程高手还是不灵,但对一般的CRACKER已经差不多了.  
  3.自己设计的垃圾认证可加密算法可能比标准算法强.   :).   因为标准算法到处都有文档资料,而自己的东西虽然垃圾,但是看懂要费劲些...  
  Top

42 楼haolicun()回复于 2001-06-21 20:13:00 得分 0

Top

43 楼sky(张小峰)回复于 2001-06-21 21:59:00 得分 0

Top

44 楼idfish(困难一大把,都搞定)回复于 2001-06-21 23:53:00 得分 0

      不错,不错。听完课,有收获。Top

45 楼mingyezi(飞天)回复于 2001-06-22 00:08:00 得分 0

真是没有想到,这么多的朋友关注这个问题。希望大家都能把对软件加密的想法变成文字,与朋友分享。Top

46 楼wjy88(明明)回复于 2001-06-22 08:55:00 得分 0

Top

47 楼artgolf()回复于 2001-06-22 10:00:00 得分 2

强烈反对用什么硬盘号、cpu号、网卡号等加密,以及什么光盘加密,你的用户会恨得咬牙切齿,  
  你是得到一点好处了,但你的用户象傻瓜一样地动弹不得。  
  真要加密就仿照microsoft的不加密、3dmax的硬件加密锁、winzip的序列号加密。  
  请尊重用户权利。Top

48 楼zeng_zhh(紫河)回复于 2001-06-22 10:12:00 得分 0

            真是高深.以前我可從來沒有考慮過這方面的事.學到很多.Top

49 楼bnulaw(提着裤子赶路的人)回复于 2001-06-22 10:33:00 得分 0

共享源码算了,加什么鸟密Top

50 楼Norse(蓝精灵)回复于 2001-06-22 13:59:00 得分 0

I   like   open   source.Top

51 楼Norse(蓝精灵)回复于 2001-06-22 14:00:00 得分 0

gplTop

52 楼Norse(蓝精灵)回复于 2001-06-22 14:02:00 得分 4

GNU-GPL中文版  
   
  --------------------------------------------------------------------------------  
     
    2001-02-06   15:53:05    
   
   
  GNU通用公共许可证(   GPL)    
  下面的正文是自由软件基金会   GNU通用公共许可证原始文档的副本。   Linux操作系统以及与它有关的大量软件是在GPL的推动下开发和发布的。    
   
  你将看到:如果你打算为了发布的目的修改,更新或改进任何受通用公共许可证约束的软件,你所修改的软件软件同样必须受到GNU通用许可证条款的约束。    
   
  GNU通用公共许可证    
  1991.6第二版    
  版权所有(C)1989,1991   Free   Software   foundation,Inc.    
  675   Mass   Ave,   Cambridge,MAO2139,   USA    
  允许每个人复制和发布这一许可证原始文档的副本,但绝对不允许对它进行任何修改。    
   
  序言    
   
  大多数软件许可证决意剥夺你的共享和修改软件的自由。对比之下,GNU通用公共许可证力图保证你的共享和修改自由软件的自由——保证自由软件对所有用户是自由的。GPL适用于大多数自由软件基金会的软件,以及由使用这些软件而承担义务的作者所开发的软件。(自由软件基金会的其他一些软件受   GNU库通用许可证的保护)。你也可以将它用到你的程序中。    
   
  当我们谈到自由软件(free   software)时,我们指的是自由而不是价格。我们的   GNU通用公共许可证决意保证你有发布自由软件的自由(如果你愿意,你可以对此项服务收取一定的费用);保证你能收到源程序或者在你需要时能得到它;保证你能修改软件或将它的一部分用于新的自由软件;而且还保证你知道你能做这些事情。    
   
  为了保护你的权利,我们需要作出规定:禁止任何人不承认你的权利,或者要求你放弃这些权利。如果你修改了自由软件或者发布了软件的副本,这些规定就转化为你的责任。例如,如果你发布这样一个程序的副本,不管是收费的还是免费的,你必须将你具有的一切权利给予你的接受者;你必须保证他们能收到或得到源程序;并且将这些条款给他们看,使他们知道他们有这样的权利。    
   
  我们采取两项措施来保护你的权利。    
  (l)给软件以版权保护。    
  (2)给你提供许可证。它给你复制,发布和修改这些软件的法律许可。同样,为了保护每个作者和我们自己,我们需要清楚地让每个人明白,自由软件没有担保(no   warranty)。如果由于其他某个人修改了软件,并继续加以传播。我们需要它的接受者明白:他们所得到的并不是原来的自由软件。由其他人引人的任何问题,不应损害原作者的声誉。最后,任何自由软件不断受到软件专利的威胁。我们希望避免这样的风险,自由软件的再发布者以个人名义获得专利许可证。事实上,将软件变为私有。为防止这一点,我们必须明确:任何专利必须以允许每个人自由使用为前提,否则就不准许有专利。    
   
  有关复制,发布和修改的条款和条件    
  0.此许可证适用于任何包含版权所有者声明的程序和其他作品,版权所有者在声明中明确说明程序和作品可以在GPI条款的约束下发布。下面提到的“程序”指的是任何这样的程序或作品。而“基于程序的作品”指的是程序或者任何受版权法约柬的衍生作品。也就是说包含程序或程序的一部分的作品。可以是原封不动的,或经过修改的和/或翻译成其他语言的(程序)。在下文中,翻译包含在修改的条款久   每个许可证接受人(Iicense)用你来称呼。许可证条款不适用于复制,发布和修改以外的活动。这些活动超出这些条款的范围。运行程序的活动不受条款的限止。仅当程序的输出构成基于程序作品的内容时,这一条款才适用(如果只运行程序就无关)。是否普遍适用取决于程序具体用来做什么。    
   
  1.只要你在每一副本上明显和恰当地出版版权声明和不承担担保的声明,保持此许可证的声明和没有担保的声明完整无损,并和程序一起绘每个其他的程序接受者一份许可证的副本,你就可以用任何媒体复制和发布你收到的原始的程序的源代码。你可以为转让副本的实际行动收取一定费用。你也有权选择提供担保以换取一定费用。    
   
  2.你可以修改程序的一个或几个副本或程序的任何部分,以此形成基于程序的作品。只要你同时满足下面的所有条件,你就可以按前面第一款的要求复制和发布这一经过修改的程序或作品。    
    a)你必须在修改的文件中附有明确的说明:你修改了这一文件及具体的修改日期。    
    b)你必须使你发布或出版的作品(它包含程序的全部或一部分,或包含由程序的全部或部分衍生的作品)允许第三方作为整体按许可证条款免费使用。    
    c)如果修改的程序在运行时以交互方式读取命令,你必须使它在开始进入常规的交互使用方式时打印或显示声明:包括适当的版权声明和没有担保的声明(或者你提供担保的声明);用户可以按此许可证条款重新发布程序的说明;并告诉用户如何看到这一许可证的副本。(例外的情况:如果原始程序以交互方式工作,它并不打印这样的声明,你的基于程序的作品也就不用打印声明)。    
   
  这些要求适用于修改了的作品的整体。如果能够确定作品的一部分并非程序的衍生产品,可以合理地认为这部分是独立的,是不同的作品。当你将它作为独立作品发布时,它不受此许可证和它的条款的约束。但是当你将这部分作为基于程序的作品的一部分发布时,作为整体它将受到许可证条款约束。准予其他许可证持有人的使用范围扩大到整个产品。也就是每个部分,不管它是谁写的。因此,本条款的意图不在于索取权利;或剥夺全部由你写成的作品的权利。而是履行权利来控制基于程序的集体作品或衍生作品的发布。    
   
  此外,将与程序无关的作品和该程序或基于程序的作品一起放在存贮体或发布媒体的同一卷上,并不导致将其他作品置于此许可证的约束范围之内。    
   
  3.你可以以目标码或可执行形式复制或发布程序(或符合第2款的基于程序的作品),只要你遵守前面的第   l,2款,并同时满足下列3条中的1条。    
    a)在通常用作软件交换的媒体上,和目标码一起附有机器可读的完整的源码。这些源码的发布应符合上面第1,2款的要求。或者    
    b)在通常用作软件交换的媒体上,和目标码一起,附有给第三方提供相应的机器可读的源码的书面报价。有效期不少于3年,费用不超过实际完成源程序发布的实际成本。源码的发布应符合上面的第1,2款的要求。或者    
    c)和目标码一起,附有你收到的发布源码的报价信息。(这一条款只适用于非商业性发布,而且你只收到程序的目标码或可执行代码和按   b)款要求提供的报价)。    
   
  作品的源码指的是对作品进行修改最优先择取的形式。对可执行的作品讲,完整的源码包括:所有模块的所有源程序,加上有关的接口的定义,加上控制可执行作品的安装和编译的   script。作为特殊例外,发布的源码不必包含任何常规发布的供可执行代码在上面运行的操作系统的主要组成部分(如编译程序,内核等)。除非这些组成部分和可执行作品结合在一起。    
   
  如果采用提供对指定地点的访问和复制的方式发布可执行码或目标码,那么,提供对同一地点的访问和复制源码可以算作源码的发布,即使第三方不强求与目标码一起复制源码。    
   
  4.除非你明确按许可证提出的要求去做,否则你不能复制,修改,转发许可证和发布程序。任何试图用其他方式复制,修改,转发许可证和发布程序是无效的。而且将自动结束许可证赋予你的权利。然而,对那些从你那里按许可证条款得到副本和权利的人们,只要他们继续全面履行条款,许可证赋予他们的权利仍然有效。    
   
  5.你没有在许可证上签字,因而你没有必要一定接受这一许可证。然而,没有任何其他东西赋予你修改和发布程序及其衍生作品的权利。如果你不接受许可证,这些行为是法律禁止的。因此,如果你修改或发布程序(或任何基于程序的作品),你就表明你接受这一许可证以及它的所有有关复制,发布和修改程序或基于程序的作品的条款和条件。    
   
  6.每当你重新发布程序(或任何基于程序的作品)时,接受者自动从原始许可证颁发者那里接到受这些条款和条件支配的复制,发布或修改程序的许可证。你不可以对接受者履行这里赋予他们的权利强加其他限制。你也没有强求第三方履行许可证条款的义务。    
   
  7.如果由于法院判决或违反专利的指控或任何其他原因(不限于专利问题)的结果,强加于你的条件(不管是法院判决,协议或其他)和许可证的条件有冲突。他们也不能用许可证条款为你开脱。在你不能同时满足本许可证规定的义务及其他相关的义务时,作为结果,你可以根本不发布程序。例如,如果某一专利许可证不允许所有那些直接或间接从你那里接受副本的人们在不付专利费的情况下重新发布程序,唯一能同时满足两方面要求的办法是停止发布程序。    
   
  如果本条款的任何部分在特定的环境下无效或无法实施,就使用条款的其余部分。并将条款作为整体用于其他环境。    
  本条款的目的不在于引诱你侵犯专利或其他财产权的要求,或争论这种要求的有效性。本条款的主要目的在于保护自由软件发布系统的完整性。它是通过通用公共许可证的应用来实现的。许多人坚持应用这一系统,已经为通过这一系统发布大量自由软件作出慷慨的供献。作者/捐献者有权决定他/她是否通过任何其他系统发布软件。许可证待有人不能强制这种选择。    
   
  本节的目的在于明确说明许可证其余部分可能产生的结果。    
   
  8.如果由于专利或者由于有版权的接口问题使程序在某些国家的发布和使用受到限止,将此程序置于许可证约束下的原始版权拥有者可以增加限止发布地区的条款,将这些国家明确排除在外。并在这些国家以外的地区发布程序。在这种情况下,许可证包含的限止条款和许可证正文一样有效。    
   
  9.自由软件基金会可能随时出版通用公共许可证的修改版或新版。新版和当前的版本在原则上保持一致,但在提到新问题时或有关事项时,在细节上可能出现差别。    
   
  每一版本都有不同的版本号。如果程序指定适用于它的许可证版本号以及“任何更新的版本”。你有权选择遵循指定的版本或自由软件基金会以后出版的新版本,如果程序未指定许可证版本,你可选择自由软件基金会已经出版的任何版本。    
   
  10.如果你愿意将程序的一部分结合到其他自由程序中,而它们的发布条件不同。写信给作者,要求准予使用。如果是自由软件基金会加以版权保护的软件,写信给自由软件基金会。我们有时会作为例外的情况处理。我们的决定受两个主要目标的指导。这两个主要目标是:我们的自由软件的衍生作品继续保持自由状态。以及从整体上促进软件的共享和重复利用。    
   
  没有担保    
   
  l1.由于程序准予免费使用,在适用法准许的范围内,对程序没有担保。除非另有书面说明,版权所有者和/或其他提供程序的人们“一样”不提供任何类型的担保。不论是明确的,还是隐含的。包括但不限于隐含的适销和适合特定用途的保证。全部的风险,如程序的质量和性能问题都由你来承担。如果程序出现缺陷,你承担所有必要的服务,修复和改正的费用。    
   
  12.除非适用法或书面协议的要求,在任何情况下,任何版权所有者或任何按许可证条款修改和发布程序的人们都不对你的损失负有任何责任。包括由于使用或不能使用程序引起的任何一般的,特殊的,偶然发生的或重大的损失(包括但不限于数据的损失,或者数据变得不精确,或者你或第三方的持续的损失,或者程序不能和其他程序协调运行等)。即使版权所有者和其他人提到这种损失的可能性也不例外。    
   
  最后的条款和条件    
  如何将这些条款用到你的新程序    
  如果你开发了新程序,而且你需要它得到公众最大限度的利用。    
  要做到这一点的最好办法是将它变为自由软件。使得每个人都能在遵守条款的基础上对它进行修改和重新发布。为了做到这一点,绘程序附上下列声明。最安全的方式是将它放在每个源程序的开头,以便最有效地传递拒绝担保的信息。每个文件至少应有“版权所有”行以及在什么地方能看到声明全文的说明。    
   
  <用一行空间给出程序的名称和它用来做什么的简单说明>    
  版权所有(C)19xx(<作者姓名>    
  这一程序是自由软件,你可以遵照自由软件基金会出版的   GNU通用公共许可证条款来修改和重新发布这一程序。或者用许可证的第二版,或者(根据你的选择)用任何更新的版本。发布这一程序的目的是希望它有用,但没有任何担保。甚至没有适合特定目的的隐含的担保。更详细的情况请参阅GNU通用公共许可证。    
  你应该已经和程序一起收到一份GNU通用公共许可证的副本。    
  如果还没有,写信给:    
  The   Free   Software   Foundation,Inc,,675   Mass   Ave,   Cambridge,    
  MAO2139,USA还应加上如何和你保持联系的信息。    
  如果程序以交互方式进行工作,当它开始进人交互方式工作时,使它输出类似下面的简短声明   ll   Gnomovision第69版,版权所有(C)19XX,作者姓名,    
  Gnomovision绝对没有担保。要知道详细情况,请输人   show   w’。    
  这是自由软件,欢迎你遵守一定的条件重新发布它,要知道详细情况,请输人‘Show   c,。    
  假设的命令‘   shovr   w’和‘   show   c’应显示通用公共许可证的相应条款。当然,你使用的命令名称可以不同于‘show   w’和‘show   c,。根据你的程序的具体情况,也可以用菜单或鼠标选项来显示这些条款。    
  如果需要,你应该取得你的上司(如果你是程序员)或你的学校签署放弃程序版权的声明。下面只是一个例子,你应该改变相应的名称:    
  Ynyodyne公司以此方式放弃   James   Harker    
  所写的   Gnomovision程序的全部版权利益。    
   
  <   Ty   coon签名>,1989.4.1    
  Ty   coon付总裁    
  这一许可证不允许你将程序并人专用程序。如果你的程序是一个子程序库。你可能会认为用库的方式和专用应用程序连接更有用。如果这是你想做的事,使用GNU库通用公共许可证代替本许可证。  
   
     
   
            转载   GNU  
     
  Top

53 楼whitelion(www.ccproj.com)回复于 2001-06-22 15:23:00 得分 0

简单点  
  softsentry也可以用Top

54 楼qianying(千影)回复于 2001-06-22 15:33:00 得分 0

长见识!Top

55 楼winvxd(小文)回复于 2001-06-22 18:39:00 得分 0

我们中国人就会这歪门邪道,不动脑筋开发好的软件。Top

56 楼mingyezi(飞天)回复于 2001-06-22 23:09:00 得分 0

差不多了,好戏该收场了Top

57 楼cbook(迷)回复于 2001-06-23 16:31:00 得分 0

告诉大家一个好消息,电子工业出版社将在8月推出一本《软件加密与解密》的图书,能解决很多问题。Top

58 楼bbzy(红小兵)回复于 2001-06-23 16:48:00 得分 0

noticeTop

59 楼gatr()回复于 2001-06-23 21:54:00 得分 0

软盘加密不保险(如果软盘易坏),序列号虽有效,但一旦别人知道一个序列号就……(如windows、word、VC……)  
  我建议采用硬件加密方法(类似加密狗),即程序运行时先测试用户计算机的硬件,将得到的信息经过一定算法后成为识别号,用户将识别号告诉开发商,获得密码,程序通过比较密码和序列号来判断是否正版,实例参见我的作品:  
  http://qyms.go.163.com,注意使用正式版。Top

60 楼ggggwwww()回复于 2001-06-23 23:15:00 得分 0

Top

61 楼ggggwwww()回复于 2001-06-23 23:29:00 得分 0

可以利用你的读卡器进行加密嘛.  
  方法如下:  
  利用智能卡的内部加密算法如:DES.  
  先在卡中设定一加密密钥(8字节).  
  先从卡中取一个随机数(8字节).  
  在计算机中,利用已知的密钥对随机数进行加密.  
  再将加密结果与卡中的加密结果进行比较.如果加密结果正确,则证明硬件是合法的硬件.系统可以正常工作.  
   
  不过任何的加密方法都是可以攻破的.如果将你的代码反编译后,将最后一步的CMP或JNE代码,JUMP或NOP之类就可以破了.  
   
  如果你的系统不是卖上十几万而且不是很多人用的话,最好不要浪费太多的精力在加密上.要将最好的精力放在系统功能的完善.  
   
  Top

62 楼xf8zbf(瞎想)回复于 2001-06-24 20:45:00 得分 0

Top

相关问题

  • 软件加密
  • 软件加密
  • 软件加密
  • 讨论一下软件的加密方法
  • 关于软件加密的方法!?请教~!
  • 高分探讨通过硬盘加密软件的方法
  • 高分求助,对于软件加密的方法!
  • 求加密方法
  • 最高分求看sql server7.0的加密了的procedure的方法或软件!
  • 软件注册、加密算法,请问各位都是采用什么方法?

关键词

  • c++
  • 加密
  • 软件
  • 序列号
  • 用户
  • 加密锁
  • 算法
  • 修改
  • 自由软件
  • 硬件

得分解答快速导航

  • 帖主:mingyezi
  • enlightenment
  • airhorse
  • k2
  • lyrb
  • ymkj
  • launch
  • ymkj
  • ymkj
  • launch
  • airhorse
  • airhorse
  • qaymuic
  • BlueTrees
  • BlueTrees
  • czzw
  • strangecat
  • artgolf
  • Norse

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo