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 ...
(2)将a、a²按照一定规则变换之后成为注册字符串。
实现程式如下:
|
// reg.cpp : Demo program for Keygen #include <string> using namespace std; typedef int BOOL; const BOOL TRUE=(1==1); // Define the magic string string GetRegstr(string &sName){ register unsigned int i; // Calculate the registration string lChksum=0; lChksum=0; lChksum=0; return sResult; int main(void){ // Output the prompt for user // Loop until the user name is legal to the algorithm cout<<"User "<<sName; sRegstr=GetRegstr(sName); cout<<" has the registration string of "<<sRegstr; return 0;
文章整理:西部数码--专业提供域名注册、虚拟主机服务 相关文章
热点关注
IDC资讯
虚拟主机
域名注册
托管租用
vps主机
智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源 网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧 行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒 网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它 服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护 软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer 网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash 程序设计 Java技术 C/C++ VB delphi 网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术 操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD |




