c# 给自己写的软件加注册码功能.docx
《c# 给自己写的软件加注册码功能.docx》由会员分享,可在线阅读,更多相关《c# 给自己写的软件加注册码功能.docx(8页珍藏版)》请在冰豆网上搜索。
c#给自己写的软件加注册码功能
C#给自己写的软件,加注册码功能。
为自己写的程序加一个注册功能吧。
生成的机器号是根据CPU和硬盘号来的,根据自己的需求改成是否是随机生成。
代码直接粘贴到新建类覆盖原代码就能直接用了。
usingSystem;
usingSystem.Management;
usingSystem.Security.Cryptography;
usingSystem.Text;
namespaceRegisterClass
{
classRegisterClass
//步骤一:
获得CUP序列号和硬盘序列号的实现代码如下:
//获得CPU的序列号
boolStupids=true;
boolCat=false;
publicstringgetCpu()
stringstrCpu=null;
ManagementClassmyCpu=newManagementClass("win32_Processor");
ManagementObjectCollectionmyCpuConnection=myCpu.GetInstances();
foreach(ManagementObjectmyObjectinmyCpuConnection)
strCpu=myObject.Properties["Processorid"].Value.ToString();
break;
}
returnstrCpu;
//取得设备硬盘的卷标号
publicstringGetDiskVolumeSerialNumber()
ManagementClassmc=
newManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectdisk=
newManagementObject("win32_logicaldisk.deviceid=\"c:
\"");
disk.Get();
returndisk.GetPropertyValue("VolumeSerialNumber").ToString();
//步骤二:
收集硬件信息生成机器码,代码如下:
//生成机器码
publicstringCreateCode()
stringtemp=getCpu()+GetDiskVolumeSerialNumber();//获得24位Cpu和硬盘序列号
string[]strid=newstring[24];//
for(inti=0;i24;i++)//把字符赋给数组
strid[i]=temp.Substring(i,1);
temp="";
//Randomrdid=newRandom();
for(inti=0;i24;i++)//从数组随机抽取24个字符组成新的字符生成机器三
//temp+=strid[rdid.Next(0,24)];
temp+=strid[i+3>=24?
0:
i+3];
returnGetMd5(temp);
//步骤三:
使用机器码生成软件注册码,代码如下:
//使用机器码生成注册码
publicint[]intCode=newint[127];//用于存密钥
publicvoidsetIntCode()//给数组赋值个小于10的随机数
//Randomra=newRandom();
//for(inti=1;i//{//intCode[i]=ra.Next(0,9);//}for(inti=1;i9?0:i+3;}}publicint[]intNumber=newint[25];//用于存机器码的Ascii值publicchar[]Charcode=newchar[25];//存储机器码字//生成注册码publicstringGetCode(stringcode){if(code!=""){//把机器码存入数组中setIntCode();//初始化127位数组for(inti=1;i//把机器码存入数组中{Charcode[i]=Convert.ToChar(code.Substring(i-1,1));}//for(intj=1;j//把字符的ASCII值存入一个整数组中。{intNumber[j]=intCode[Convert.ToInt32(Charcode[j])]+Convert.ToInt32(Charcode[j]);}stringstrAsciiName=null;//用于存储机器码for(intj=1;j{//MessageBox.Show((Convert.ToChar(intNumber[j])).ToString());//判断字符ASCII值是否0-9之间if(intNumber[j]>=48&&intNumber[j]57){strAsciiName+=Convert.ToChar(intNumber[j]).ToString();}//判断字符ASCII值是否A-Z之间elseif(intNumber[j]>=65&&intNumber[j]90){strAsciiName+=Convert.ToChar(intNumber[j]).ToString();}//判断字符ASCII值是否a-z之间 elseif(intNumber[j]>=97&&intNumber[j]122){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;//得到注册码}returnstrAsciiName;}else{return"";}} //步骤四:用户输入注册码注册软件,演示代码如下://注册publicboolRegistIt(stringcurrentCode,stringrealCode){if(realCode!=""){if(currentCode.TrimEnd().Equals(realCode.TrimEnd())){Microsoft.Win32.RegistryKeyretkey=Microsoft.Win32.Registry.CurrentUser.OpenSubKey("software",true).CreateSubKey("StupidsCat").CreateSubKey("StupidsCat.ini").CreateSubKey(currentCode.TrimEnd());retkey.SetValue("StupidsCat","BBC6D58D0953F027760A046D58D52786");retkey=Microsoft.Win32.Registry.LocalMachine.OpenSubKey("software",true).CreateSubKey("StupidsCat").CreateSubKey("StupidsCat.ini").CreateSubKey(currentCode.TrimEnd());retkey.SetValue("StupidsCat","BBC6D58D0953F027760A046D58D52786");returnStupids;}else{returnCat;}}else{returnCat;}}publicboolBoolRegist(stringsn){string[]keynames;boolflag=false;Microsoft.Win32.RegistryKeylocalRegKey=Microsoft.Win32.Registry.LocalMachine;Microsoft.Win32.RegistryKeyuserRegKey=Microsoft.Win32.Registry.CurrentUser;try{keynames=localRegKey.OpenSubKey("software\\StupidsCat\\StupidsCat.ini\\"+GetMd5(sn)).GetValueNames();foreach(stringnameinkeynames){if(name=="StupidsCat"){if(localRegKey.OpenSubKey("software\\StupidsCat\\StupidsCat.ini\\"+GetMd5(sn)).GetValue("StupidsCat").ToString()=="BBC6D58D0953F027760A046D58D52786")flag=true;}}keynames=userRegKey.OpenSubKey("software\\StupidsCat\\StupidsCat.ini\\"+GetMd5(sn)).GetValueNames();foreach(stringnameinkeynames){if(name=="StupidsCat"){if(flag&&userRegKey.OpenSubKey("software\\StupidsCat\\StupidsCat.ini\\"+GetMd5(sn)).GetValue("StupidsCat").ToString()=="BBC6D58D0953F027760A046D58D52786")returntrue;}}returnfalse;}catch{returnfalse;}finally{localRegKey.Close();userRegKey.Close();}}publicstringGetMd5(objecttext){stringpath=text.ToString();MD5CryptoServiceProviderMD5Pro=newMD5CryptoServiceProvider();Byte[]buffer=Encoding.GetEncoding("utf-8").GetBytes(text.ToString());Byte[]byteResult=MD5Pro.ComputeHash(buffer);stringmd5result=BitConverter.ToString(byteResult).Replace("-","");returnmd5result;}}}
//{
//intCode[i]=ra.Next(0,9);
//}
for(inti=1;i9?
i+3;
publicint[]intNumber=newint[25];//用于存机器码的Ascii值
publicchar[]Charcode=newchar[25];//存储机器码字
//生成注册码
publicstringGetCode(stringcode)
if(code!
="")
//把机器码存入数组中
setIntCode();//初始化127位数组
for(inti=1;i//把机器码存入数组中
Charcode[i]=Convert.ToChar(code.Substring(i-1,1));
}//
for(intj=1;j//把字符的ASCII值存入一个整数组中。
intNumber[j]=
intCode[Convert.ToInt32(Charcode[j])]+
Convert.ToInt32(Charcode[j]);
stringstrAsciiName=null;//用于存储机器码
for(intj=1;j{//MessageBox.Show((Convert.ToChar(intNumber[j])).ToString());//判断字符ASCII值是否0-9之间if(intNumber[j]>=48&&intNumber[j]57){strAsciiName+=Convert.ToChar(intNumber[j]).ToString();}//判断字符ASCII值是否A-Z之间elseif(intNumber[j]>=65&&intNumber[j]90){strAsciiName+=Convert.ToChar(intNumber[j]).ToString();}//判断字符ASCII值是否a-z之间 elseif(intNumber[j]>=97&&intNumber[j]122){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;//得到注册码}returnstrAsciiName;}else{return"";}} //步骤四:用户输入注册码注册软件,演示代码如下://注册publicboolRegistIt(stringcurrentCode,stringrealCode){if(realCode!=""){if(currentCode.TrimEnd().Equals(realCode.TrimEnd())){Microsoft.Win32.RegistryKeyretkey=Microsoft.Win32.Registry.CurrentUser.OpenSubKey("software",true).CreateSubKey("StupidsCat").CreateSubKey("StupidsCat.ini").CreateSubKey(currentCode.TrimEnd());retkey.SetValue("StupidsCat","BBC6D58D0953F027760A046D58D52786");retkey=Microsoft.Win32.Registry.LocalMachine.OpenSubKey("software",true).CreateSubKey("StupidsCat").CreateSubKey("StupidsCat.ini").CreateSubKey(currentCode.TrimEnd());retkey.SetValue("StupidsCat","BBC6D58D0953F027760A046D58D52786");returnStupids;}else{returnCat;}}else{returnCat;}}publicboolBoolRegist(stringsn){string[]keynames;boolflag=false;Microsoft.Win32.RegistryKeylocalRegKey=Microsoft.Win32.Registry.LocalMachine;Microsoft.Win32.RegistryKeyuserRegKey=Microsoft.Win32.Registry.CurrentUser;try{keynames=localRegKey.OpenSubKey("software\\StupidsCat\\StupidsCat.ini\\"+GetMd5(sn)).GetValueNames();foreach(stringnameinkeynames){if(name=="StupidsCat"){if(localRegKey.OpenSubKey("software\\StupidsCat\\StupidsCat.ini\\"+GetMd5(sn)).GetValue("StupidsCat").ToString()=="BBC6D58D0953F027760A046D58D52786")flag=true;}}keynames=userRegKey.OpenSubKey("software\\StupidsCat\\StupidsCat.ini\\"+GetMd5(sn)).GetValueNames();foreach(stringnameinkeynames){if(name=="StupidsCat"){if(flag&&userRegKey.OpenSubKey("software\\StupidsCat\\StupidsCat.ini\\"+GetMd5(sn)).GetValue("StupidsCat").ToString()=="BBC6D58D0953F027760A046D58D52786")returntrue;}}returnfalse;}catch{returnfalse;}finally{localRegKey.Close();userRegKey.Close();}}publicstringGetMd5(objecttext){stringpath=text.ToString();MD5CryptoServiceProviderMD5Pro=newMD5CryptoServiceProvider();Byte[]buffer=Encoding.GetEncoding("utf-8").GetBytes(text.ToString());Byte[]byteResult=MD5Pro.ComputeHash(buffer);stringmd5result=BitConverter.ToString(byteResult).Replace("-","");returnmd5result;}}}
//MessageBox.Show((Convert.ToChar(intNumber[j])).ToString());
//判断字符ASCII值是否0-9之间
if(intNumber[j]>=48&&intNumber[j]57)
strAsciiName+=Convert.ToChar(intNumber[j]).ToString();
//判断字符ASCII值是否A-Z之间
elseif(intNumber[j]>=65&&intNumber[j]90)
//判断字符ASCII值是否a-z之间
elseif(intNumber[j]>=97&&intNumber[j]122)
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;//得到注册码
returnstrAsciiName;
return"";
//步骤四:
用户输入注册码注册软件,演示代码如下:
//注册
publicboolRegistIt(stringcurrentCode,stringrealCode)
if(realCode!
if(currentCode.TrimEnd().Equals(realCode.TrimEnd()))
Microsoft.Win32.RegistryKeyretkey=
Microsoft.Win32.Registry.CurrentUser.
OpenSubKey("software",true).CreateSubKey("StupidsCat").
CreateSubKey("StupidsCat.ini").
CreateSubKey(currentCode.TrimEnd());
retkey.SetValue("StupidsCat","BBC6D58D0953F027760A046D58D52786");
retkey=Microsoft.Win32.Registry.LocalMachine.
returnStupids;
returnCat;
else{returnCat;}
publicboolBoolRegist(stringsn)
string[]keynames;boolflag=false;
Microsoft.Win32.RegistryKeylocalRegKey=Microsoft.Win32.Registry.LocalMachine;
Microsoft.Win32.RegistryKeyuserRegKey=Microsoft.Win32.Registry.CurrentUser;
try
keynames=localRegKey.OpenSubKey("software\\StupidsCat\\StupidsCat.ini\\"+GetMd5(sn)).GetValueNames();
foreach(stringnameinkeynames)
if(name=="StupidsCat")
if(localRegKey.OpenSubKey("software\\StupidsCat\\StupidsCat.ini\\"+GetMd5(sn)).GetValue("StupidsCat").ToString()=="BBC6D58D0953F027760A046D58D52786")
flag=true;
keynames=userRegKey.OpenSubKey("software\\StupidsCat\\StupidsCat.ini\\"+GetMd5(sn)).GetValueNames();
if(flag&&userRegKey.OpenSubKey("software\\StupidsCat\\StupidsCat.ini\\"+GetMd5(sn)).GetValue("StupidsCat").ToString()=="BBC6D58D0953F027760A046D58D52786")
returntrue;
returnfalse;
catch
finally
localRegKey.Close();
userRegKey.Close();
publicstringGetMd5(objecttext)
stringpath=text.ToString();
MD5CryptoServiceProviderMD5Pro=newMD5CryptoServiceProvider();
Byte[]buffer=Encoding.GetEncoding("utf-8").GetBytes(text.ToString());
Byte[]byteResult=MD5Pro.ComputeHash(buffer);
stringmd5result=BitConverter.ToString(byteResult).Replace("-","");
returnmd5result;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1