c# 给自己写的软件加注册码功能.docx

上传人:b****5 文档编号:6696069 上传时间:2023-01-09 格式:DOCX 页数:8 大小:16.10KB
下载 相关 举报
c# 给自己写的软件加注册码功能.docx_第1页
第1页 / 共8页
c# 给自己写的软件加注册码功能.docx_第2页
第2页 / 共8页
c# 给自己写的软件加注册码功能.docx_第3页
第3页 / 共8页
c# 给自己写的软件加注册码功能.docx_第4页
第4页 / 共8页
c# 给自己写的软件加注册码功能.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

c# 给自己写的软件加注册码功能.docx

《c# 给自己写的软件加注册码功能.docx》由会员分享,可在线阅读,更多相关《c# 给自己写的软件加注册码功能.docx(8页珍藏版)》请在冰豆网上搜索。

c# 给自己写的软件加注册码功能.docx

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;

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1