简述.Net下的应用程序授权实战步骤_ASP.NET技巧

来源:互联网 发布:服务js.kj.my.gs.xp 编辑:程序博客网 时间:2024/05/21 06:18

 第一步:生成一组公钥和私钥,公钥用于你发布程序,私钥属于注册码生成。view plaincopy to clipboardprint?
using(RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
// 公钥
string pubkey = rsa.ToXmlString(false);

// 私钥
string prikey = rsa.ToXmlString(true);

//如果是webForm就Response.Write(pubkey ”<br/>” prikey); 下
//如果是winForm就MessageBox.Show("公钥:" pubkey "/r/n私钥:" prikey); 下
}

using(RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
// 公钥
string pubkey = rsa.ToXmlString(false);

// 私钥
string prikey = rsa.ToXmlString(true);



//如果是webForm就Response.Write(pubkey ”<br/>” prikey); 下
//如果是winForm就MessageBox.Show("公钥:" pubkey "/r/n私钥:" prikey); 下
}  第二步:取得机器硬件编码。我选用CUP的编号。view plaincopy to clipboardprint?
/// <summary>
/// 获取CPU编号
/// </summary>
/// <returns></returns>
public string GetCpuId()
{

ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();

String strCpuID = null;
foreach (ManagementObject mo in moc)
{
strCpuID = mo.Properties["ProcessorId"].Value.ToString();
break;
}
return strCpuID;

} http://www.mscto.com

/// <summary>
/// 获取CPU编号
/// </summary>
/// <returns></returns>
public string GetCpuId()
{ http://www.mscto.com

ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();

String strCpuID = null;
foreach (ManagementObject mo in moc)
{
strCpuID = mo.Properties["ProcessorId"].Value.ToString();
break;
}
return strCpuID;

}  第三步:编写注册码生成WinForm程序,使用CUP的编号来生成注册码,当然你也可以用 WebForm来写。view plaincopy to clipboardprint?
using(RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
rsa.FromXmlString(“私钥”);
// 加密对象
RSAPKCS1SignatureFormatter f = new RSAPKCS1SignatureFormatter(rsa);
f.SetHashAlgorithm("SHA1");
byte[] source = System.Text.ASCIIEncoding.ASCII.GetBytes(“CUP的编号”);
SHA1Managed sha = new SHA1Managed();
byte[] result = sha.ComputeHash(source);

byte[] b = f.CreateSignature(result);

msg.Text = Convert.ToBase64String(b); //这里就得到了string形式的注册码

//再接下来你可以把生成的注册码保存成license.lic文件,license.lic文件也没什么特别的格式就是相当于把注册吗保存到一个txt文件中,无非这个txt文件的后缀改成了lic,你要高兴也可保存成其它多种格式。