给软件加注册码工具给自己的软件Software制作注册码

给软件加注册码工具:给自己的软件Software制作注册码

疯狂代码 http://CrazyCoder.cn/ ĵ:http:/CrazyCoder.cn/DotNet/Article61775.html "翻身做主"--给自己软件Software制作注册码

从今天起, 您开发任何软件Software如果您愿意都可以为的加密 --为您软件Software制作款注册机!

当您看完这篇文章时, 您就可以理直气壮告诉您用户 : "喂, 想用我软件Software是吧 ? 掏钱!".

呵呵, 这当然只是给自己壮胆话, 现在连万能注册机都有了, 人家还怕啥 ? 不过只要您想想微软, 人家再牛B加密技术都会被国人"鄙视"? 但人家不也在中国大把大把捞钱吗?

OK, 不扯了, 我们进入正题.

同般软件Software注册样, 我们这里注册是这样进行:

1. 首先根据用户硬件信息生成24位机器码

-- 相当于种子,用于生成随机数

2. 采用注册机根据特征数字生成个24位注册码

-- 相当于伪随机数生成器, 输出长度自己定, 最后用个格式化,将随机数映射到ASCII集合

3. 用户输入注册码注册成功

假设客户很喜欢您软件Software, 也假设他没有破解, 他需要通过以下方式向您取得注册码:

(1).如果他能上网, 他需要把机器码用Email发给您;

(2).如果他不能上网, 他可以把机器码用手机短信方式发给您.

(3).如果他没有手机, 他可以带着机器码然后坐火车到您办公室想您要个注册码.

--第3条只是为了让您看帖子时候别太枯燥了, 抱歉.

现在, 您拿到了客户机器码后, 如果您同时也收到了他汇钱, 呵呵, 好像给软件Software加密就是为了要钱吧? 那么您就可以用客户机器码生成个唯注册码再用同样方式给用户, 最后, 用户输入注册码即可!

需要强调是客户机器硬件信息获取方式是有很多种选择. 这里我们选择最放心两个硬件: CUP序列号和硬盘卷标

号. 好了, 下面您就可以步步制作款软件Software注册机了.

步骤: 获得CUP序列号和硬盘序列号实现代码如下:

view plaincopy to clipboardpr?

public getCpu

{

strCpu = null;

ManagementClass myCpu = ManagementClass("win32_Processor");

ManagementObjectCollection myCpuConnection = myCpu.GetInstances;

foreach (ManagementObject myObject in myCpuConnection)

{

strCpu = myObject.Properties["Processorid"].Value.;

;

} strCpu;

}

public getCpu

{

strCpu = null;

ManagementClass myCpu = ManagementClass("win32_Processor");

ManagementObjectCollection myCpuConnection = myCpu.GetInstances;

foreach (ManagementObject myObject in myCpuConnection)

{

strCpu = myObject.Properties["Processorid"].Value.;

;

} strCpu;

}

view plaincopy to clipboardpr?

// 取得设备硬盘卷标号

public GetDiskVolumeSerialNumber

{

ManagementClass mc = ManagementClass("Win32_NetworkAdapterConfiguration");

ManagementObject disk = ManagementObject("win32_logicaldisk.deviceid=\"d:\"");

disk.Get;

disk.GetPropertyValue("VolumeSerialNumber").;

}

// 取得设备硬盘卷标号

public GetDiskVolumeSerialNumber

{

ManagementClass mc = ManagementClass("Win32_NetworkAdapterConfiguration");

ManagementObject disk = ManagementObject("win32_logicaldisk.deviceid=\"d:\"");

disk.Get;

disk.GetPropertyValue("VolumeSerialNumber").;

}

步骤 2: 收集硬件信息生成机器码, 代码如下:

view plaincopy to clipboardpr?

//生成机器码

private void button1_Click(object sender, EventArgs e)

{

label2.Text = getCpu + GetDiskVolumeSerialNumber;//获得24位Cpu和硬盘序列号

strid = [24];

for ( i = 0; i

{

strid[i] = label2.Text.Sub(i, 1);

} label2.Text = "";

Random rdid = Random;

for ( i = 0; i

{

label2.Text strid[rdid.Next(0, 24)];

}

}

//生成机器码

private void button1_Click(object sender, EventArgs e)

{

label2.Text = getCpu + GetDiskVolumeSerialNumber;//获得24位Cpu和硬盘序列号

strid = [24];

for ( i = 0; i

{

strid[i] = label2.Text.Sub(i, 1);

} label2.Text = "";

Random rdid = Random;

for ( i = 0; i

{

label2.Text strid[rdid.Next(0, 24)];

}

}

步骤 3: 使用机器码生成软件Software注册码, 代码如下:

view plaincopy to clipboardpr?

public Code = [127];//用于存密钥

public void IntCode//给赋值个小于10随机数

{

Random ra = Random;

for ( i = 1; i

{

Code[i] = ra.Next(0, 9);

}

}

public Number = [25];//用于存机器码Ascii值

public char Charcode = char[25];//存储机器码字

//生成注册码

private void button2_Click(object sender, EventArgs e)

{

(label2.Text != "")

{ //把机器码存入中

IntCode;//化127位

for ( i = 1; i

{

Charcode[i] = Convert.ToChar(label2.Text.Sub(i - 1, 1));

}//

for ( j = 1; j

{

Number[j] = Code[Convert.ToInt32(Charcode[j])] + Convert.ToInt32(Charcode[j]);

}

strAsciiName = null;//用于存储机器码

for ( j = 1; j

{

//MessageBox.Show((Convert.ToChar(Number[j])).);

(Number[j] >= 48 && Number[j]

{

strAsciiName Convert.ToChar(Number[j]).;

}

(Number[j] >= 65 && Number[j]

{

strAsciiName Convert.ToChar(Number[j]).;

}

(Number[j] >= 97 && Number[j]

{

strAsciiName Convert.ToChar(Number[j]).;

}

//判断ASCII值不在以上范围内

{

(Number[j] > 122)//判断ASCII值是否大于z

{

strAsciiName Convert.ToChar(Number[j] - 10).;

}

{

strAsciiName Convert.ToChar(Number[j] - 9).;

}

}

label3.Text = strAsciiName;//得到注册码

}

}

{

MessageBox.Show("请选生成机器码", "注册提示");

}

}

public Code = [127];//用于存密钥

public void IntCode//给赋值个小于10随机数

{

Random ra = Random;

for ( i = 1; i

{

Code[i] = ra.Next(0, 9);

}

}

public Number = [25];//用于存机器码Ascii值

public char Charcode = char[25];//存储机器码字

//生成注册码

private void button2_Click(object sender, EventArgs e)

{

(label2.Text != "")

{ //把机器码存入中

IntCode;//化127位

for ( i = 1; i

{

Charcode[i] = Convert.ToChar(label2.Text.Sub(i - 1, 1));

}//

for ( j = 1; j

{

Number[j] = Code[Convert.ToInt32(Charcode[j])] + Convert.ToInt32(Charcode[j]);

}

strAsciiName = null;//用于存储机器码

for ( j = 1; j

{

//MessageBox.Show((Convert.ToChar(Number[j])).);

(Number[j] >= 48 && Number[j]

{

strAsciiName Convert.ToChar(Number[j]).;

}

(Number[j] >= 65 && Number[j]

{

strAsciiName Convert.ToChar(Number[j]).;

}

(Number[j] >= 97 && Number[j]

{

strAsciiName Convert.ToChar(Number[j]).;

}

//判断ASCII值不在以上范围内

{

(Number[j] > 122)//判断ASCII值是否大于z

{

strAsciiName Convert.ToChar(Number[j] - 10).;

}

{

strAsciiName Convert.ToChar(Number[j] - 9).;

}

}

label3.Text = strAsciiName;//得到注册码

}

}

{

MessageBox.Show("请选生成机器码", "注册提示");

}

}

步骤 4: 用户输入注册码注册软件Software, 演示代码如下:

view plaincopy to clipboardpr?

private void btnRegist_Click(object sender, EventArgs e)

{

(label3.Text != "")

{

(textBox1.Text.TrimEnd.Equals(label3.Text.TrimEnd))

{

Microsoft.Win32.RegistryKey retkey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("software",true).CreateSubKey("ZHY").CreateSubKey("ZHY.INI").CreateSubKey(textBox1.Text.TrimEnd); retkey.SetValue("UserName", "MySoft");

MessageBox.Show("注册成功");

}

{ MessageBox.Show("注册码输入"); }

}

{

MessageBox.Show("请生成注册码", "注册提示");

}

}

private void btnRegist_Click(object sender, EventArgs e)

{

(label3.Text != "")

{

(textBox1.Text.TrimEnd.Equals(label3.Text.TrimEnd))

{

Microsoft.Win32.RegistryKey retkey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("software",true).CreateSubKey("ZHY").CreateSubKey("ZHY.INI").CreateSubKey(textBox1.Text.TrimEnd);

retkey.SetValue("UserName", "MySoft");

MessageBox.Show("注册成功");

}

{ MessageBox.Show("注册码输入"); }

}

{

MessageBox.Show("请生成注册码", "注册提示");

}

}

转自:http://www.cnblogs.com/ziyiFly/archive/2008/09/22/1296096.html

2009-2-5 1:53:28

疯狂代码 http://CrazyCoder.cn/


© 2021 实用范文网 | 联系我们: webmaster# 6400.net.cn