首页 机器码获取生成注册码

机器码获取生成注册码

举报
开通vip

机器码获取生成注册码机器码获取生成注册码通过获取硬盘的物理序列号和网卡MAC地址,为您的程序提供了获取唯一的机器码,你可以根据此码,生成自己产品注册码,有效防止软件的盗版可以自己根据获取到的硬盘序列号和网卡MAC地址进行一定的加密算法生成,唯一的机器码.给自己的软件制作注册码从今天起,您开发的的任何软件如果您愿意都可以为之加密--为您的软件制作一款注册机!当您看完这篇文章时,您就可以理直气壮的告诉您的用户:"喂,想用我的软件是吧?掏钱!".呵呵,这当然只是给自己壮胆的话,现在连万能注册机都有了,人家还怕啥?不过只要您想想微软,人家再牛...

机器码获取生成注册码
机器码获取生成注册码通过获取硬盘的物理序列号和网卡MAC地址,为您的程序提供了获取唯一的机器码,你可以根据此码,生成自己产品注册码,有效防止软件的盗版可以自己根据获取到的硬盘序列号和网卡MAC地址进行一定的加密算法生成,唯一的机器码.给自己的软件制作注册码从今天起,您开发的的任何软件如果您愿意都可以为之加密--为您的软件制作一款注册机!当您看完这篇文章时,您就可以理直气壮的告诉您的用户:"喂,想用我的软件是吧?掏钱!".呵呵,这当然只是给自己壮胆的话,现在连万能注册机都有了,人家还怕啥?不过只要您想想微软,人家再牛B的加密技术都会被国人"鄙视"?但人家不也在中国大把大把的捞钱吗?OK,不扯了,我们进入正题.同一般的软件注册一样,我们这里的注册是这样进行的:1.首先根据用户的硬件信息生成24位的机器码--相当于种子,用于生成随机数2.采用注册机根据特征数字生成一个24位注册码--相当于伪随机数生成器,输出长度自己定,最后用一个格式化函数,将随机数映射到ASCII字符集合3.用户输入注册码注册成功假设客户很喜欢您的软件,也假设他没有破解,他需要通过以下方式向您取得注册码:(1).如果他能上网,他需要把机器码用Email发给您;(2).如果他不能上网,他可以把机器码用手机短信的方式发给您.(3).如果他没有手机,他可以带着机器码然后坐火车到您的办公室想您要一个注册码.--第3条只是为了让您看帖子的时候别太枯燥了,抱歉.现在,您拿到了客户的机器码后,如果您同时也收到了他汇的钱,呵呵,好像给软件加密就是为了要钱吧?那么您就可以用客户的机器码生成一个唯一的注册码再用同样的方式给用户,最后,用户输入注册码即可!需要强调的是客户机器的硬件信息获取方式是有很多种选择的.这里我们选择最放心的两个硬件:CUP的序列号和硬盘的卷标号.好了,下面您就可以一步一步制作一款软件注册机了.步骤一:获得CUP序列号和硬盘序列号的实现代码如下:Java代码#region获取cpu的序列号publicstringgetCpu(){stringstrCpu=null;ManagementClassmyCpu=newManagementClass("win32_Processor");ManagementObjectCollectionmyCpuConnection=myCpu.GetInstances();foreach(ManagementObjectmyObjectinmyCpuConnection){strCpu=myObject.Properties["Processorid"].Value.ToString();break;}returnstrCpu;}#endregion#region获取cpu的序列号publicstringgetCpu(){stringstrCpu=null;ManagementClassmyCpu=newManagementClass("win32_Processor");ManagementObjectCollectionmyCpuConnection=myCpu.GetInstances();foreach(ManagementObjectmyObjectinmyCpuConnection){strCpu=myObject.Properties["Processorid"].Value.ToString();break;}returnstrCpu;}#endregionJava代码#region获取设备硬盘的卷标号publicstringGetDiskVolumeSerialNumber(){ManagementClassmc=newManagementClass("Win32_NetworkAdapterConfiguration");ManagementObjectdisk=newManagementObject("win32_logicaldisk.deviceid=\"d:\"");disk.Get();returndisk.GetPropertyValue("VolumeSerialNumber").ToString();}#endregion#region获取设备硬盘的卷标号publicstringGetDiskVolumeSerialNumber(){ManagementClassmc=newManagementClass("Win32_NetworkAdapterConfiguration");ManagementObjectdisk=newManagementObject("win32_logicaldisk.deviceid=\"d:\"");disk.Get();returndisk.GetPropertyValue("VolumeSerialNumber").ToString();}#endregion步骤二:收集硬件信息生成机器码,代码如下:Java代码privatevoidbutton1_Click(objectsender,EventArgse){label2.Text=getCpu()+GetDiskVolumeSerialNumber();//获得24位Cpu和硬盘序列号string[]strid=newstring[24];for(inti=0;i<24;i++)//把字符赋给数组{strid[i]=label2.Text.Substring(i,1);}label2.Text="";Randomrdid=newRandom();for(inti=0;i<24;i++)//从数组随机抽取24个字符组成新的字符生成机器三{label2.Text+=strid[rdid.Next(0,24)];}}privatevoidbutton1_Click(objectsender,EventArgse){label2.Text=getCpu()+GetDiskVolumeSerialNumber();//获得24位Cpu和硬盘序列号string[]strid=newstring[24];for(inti=0;i<24;i++)//把字符赋给数组{strid[i]=label2.Text.Substring(i,1);}label2.Text="";Randomrdid=newRandom();for(inti=0;i<24;i++)//从数组随机抽取24个字符组成新的字符生成机器三{label2.Text+=strid[rdid.Next(0,24)];}}步骤三:使用机器码生成软件注册码,代码如下:Java代码publicint[]intCode=newint[127];//用于存密钥publicvoidsetIntCode()//给数组赋值个小于10的随机数{Randomra=newRandom();for(inti=1;i=48&&intNumber[j]<=57)//判断字符ASCII值是否0-9之间{strAsciiName+=Convert.ToChar(intNumber[j]).ToString();}elseif(intNumber[j]>=65&&intNumber[j]<=90)//判断字符ASCII值是否A-Z之间{strAsciiName+=Convert.ToChar(intNumber[j]).ToString();}elseif(intNumber[j]>=97&&intNumber[j]<=122)//判断字符ASCII值是否a-z之间{strAsciiName+=Convert.ToChar(intNumber[j]).ToString();}else//判断字符ASCII值不在以上范围内{if(intNumber[j]>122)//判断字符ASCII值是否大于z{strAsciiName+=Convert.ToChar(intNumber[j]-10).ToString();}else{strAsciiName+=Convert.ToChar(intNumber[j]-9).ToString();}}label3.Text=strAsciiName;//得到注册码}}else{MessageBox.Show("请选生成机器码","注册提示");}}publicint[]intCode=newint[127];//用于存密钥publicvoidsetIntCode()//给数组赋值个小于10的随机数{Randomra=newRandom();for(inti=1;i=48&&intNumber[j]<=57)//判断字符ASCII值是否0-9之间{strAsciiName+=Convert.ToChar(intNumber[j]).ToString();}elseif(intNumber[j]>=65&&intNumber[j]<=90)//判断字符ASCII值是否A-Z之间{strAsciiName+=Convert.ToChar(intNumber[j]).ToString();}elseif(intNumber[j]>=97&&intNumber[j]<=122)//判断字符ASCII值是否a-z之间{strAsciiName+=Convert.ToChar(intNumber[j]).ToString();}else//判断字符ASCII值不在以上范围内{if(intNumber[j]>122)//判断字符ASCII值是否大于z{strAsciiName+=Convert.ToChar(intNumber[j]-10).ToString();}else{strAsciiName+=Convert.ToChar(intNumber[j]-9).ToString();}}label3.Text=strAsciiName;//得到注册码}}else{MessageBox.Show("请选生成机器码","注册提示");}}步骤四:用户输入注册码注册软件,演示代码如下:Java代码privatevoidbtnRegist_Click(objectsender,EventArgse){if(label3.Text!=""){if(textBox1.Text.TrimEnd().Equals(label3.Text.TrimEnd())){Microsoft.Win32.RegistryKeyretkey=Microsoft.Win32.Registry.CurrentUser.OpenSubKey("software",true).CreateSubKey("ZHY").CreateSubKey("ZHY.INI").CreateSubKey(textBox1.Text.TrimEnd());retkey.SetValue("UserName","MySoft");MessageBox.Show("注册成功");}else{MessageBox.Show("注册码输入错误");}}else{MessageBox.Show("请生成注册码","注册提示");}}privatevoidbtnRegist_Click(objectsender,EventArgse){if(label3.Text!=""){if(textBox1.Text.TrimEnd().Equals(label3.Text.TrimEnd())){Microsoft.Win32.RegistryKeyretkey=Microsoft.Win32.Registry.CurrentUser.OpenSubKey("software",true).CreateSubKey("ZHY").CreateSubKey("ZHY.INI").CreateSubKey(textBox1.Text.TrimEnd());retkey.SetValue("UserName","MySoft");MessageBox.Show("注册成功");}else{MessageBox.Show("注册码输入错误");}}else{MessageBox.Show("请生成注册码","注册提示");}}
本文档为【机器码获取生成注册码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
陨辰
暂无简介~
格式:pdf
大小:219KB
软件:PDF阅读器
页数:9
分类:
上传时间:2022-06-09
浏览量:9