赛迪网 > IT技术 C/C++ > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

共享软件中注册部分的简单实现 (1)

发布时间:2006.01.18 05:39     来源:赛迪论坛    作者:kool

目前,很多共享软件中使用注册码来实现对软件的保护。所谓注册码,就是一组与用户的某些特定信息(如用户名称、计算机硬件等等)相关的字符串。由于注册码传输起来比较简单,同时容易验证(相对于磁盘、光盘指纹等),因此现在注册码的应用越来越广泛,甚至一些商业软件,如Windows XP也使用了类似的机制(Microsoft称为Windows Product
Activation)。

谈起注册码,就不能不提注册器。注册器是用来产生注册码的程序,其计算逻辑通常与受保护的应用程序一致。通过与受保护应用程序相同,或预先约定的计算逻辑得到的注册号,将决定受保护应用程序的行为,如显示“软件未注册”、禁用某些功能,或在“关于”对话框中显示注册者的姓名,等等。

其中,最终用户通过某种方式提交其注册信息,例如他(或他所在的组织)的名字,甚至极端一些,提供某些可以确定某人身份的信息,如Pentium III CPU的CPU ID,硬盘的序列号,网卡的MAC地址等等。然后,注册服务器,或呼叫中心的服务人员根据用户提供的信息,计算一个注册号,并告诉最终用户。

通常,由于人工操作可能造成差错,我们希望注册过程由计算机自动实现。不过这就带来了一个问题:用户凭什么相信我们的程序并不会泄漏他的个人隐私呢?针对这一问题,目前流行的做法是提供若干选项,其中包括电话注册,网络注册,以及平信注册等等,并把程序提交的内容告知用户。

此外,某些与用户的电脑相关的信息,如配置等等,不宜使用明文传送。这一方面是由于用户可能不愿意将这些信息透露给我们,另一方面是以明文传送信息可能会导致第三方(如cracker)截获信息。目前比较流行的方法是把那些我们并不需要,但却决定用户身份的信息用某种散列算法进行编码然后再发送。当然,在发送过程中我们可以使用SSL加密,或者其他一些方法来保证安全,由于与本文的主要内容关系不大,在此不赘述,读者可参考相关书籍。

需要保密的用户信息→ 散列算法 → 安全传输(如SSL) →服务器

就笔者个人的经验,计算注册码和验证注册码使用不同的算法,可以在一定程度上提高注册过程的安全性。当然,任何安全措施都不可能保证不被解密,“世界上没有打不开的锁”,解密只是一个时间问题,在构造注册码算法的时候,只要让解密代价大于软件价值即可,不必做得太复杂。

作为用户而言,无论是用什么注册方式,他都不希望过于复杂。通过计算机直接注册的方式无疑是最方便的,但很多用户可能不愿意这样做。作为用户来说,通过电话注册这种方式,说出自己的注册ID(通常包括了产品ID、用户的名字等信息),以及输入注册码应该是各种注册方式中最麻烦的一种。

注册ID和注册码应该具有以下特点:
(1)便于辨认、输入。注册码不是密码,没有必要是用大量的特殊符号、大小写组合。因此,注册码和注册ID中不应该包含不同大小写的字母,以及容易混淆的数字(1-I,0-O,2-Z)。
(2)具有查错能力。统计证明,输入注册码时,错序(如把1234输入成1243)、击键错误是最常见的错误。比较常用的方法是把注册码分成若干节,每节包括一个校验码,这样注册码就具有查错能力了。

为了体现上面的要求,我构造了一个这样的算法:
(1)计算输入的用户名,并按照下面的规则计算和:
设结果为a,预置为0
按顺序取用户名字符串的每一个字符的ASCII值,乘上位号,累加到a上。
例如:
J a s o n   L i
1 2 3 4 5 6 7 8
这样,a=(char)’J’+((char)’a’)*2+((char)’s’)*3+...

1 2 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 中国“共享软件”作者广州见面会顺利闭幕 (12-14) · 第二届中国共享软件作者交流会召开 (12-13)
· 当免费不再 中国共享软件生存之路在何方? (06-01) · 日本首例遭指控对等文件交换商被判决有罪 (12-01)
· 注册共享软件——到底是打声讯还是发短信? (05-31) · 共享软件推荐 (03-14)
· 与主流唱反调:共享软件的冷思考 (03-12)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管