简述.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,你要高兴也可保存成其它多种格式。
- 简述.Net下的应用程序授权实战步骤_ASP.NET技巧
- 看了下面那篇“Crack别人应用程序”的文章有感,简述.Net下的应用程序授权。
- 如何最大限度提高.net的性能_asp.net技巧
- .net 1.1 下不使用 system.web.mail.smtpmail 发送邮件的其它选择_asp.net技巧
- asp.net 无法确保在注册的 javascript 内不存在重复定义_asp.net技巧
- .net 2.0中新增的nullable类型_asp.net使用技巧
- asp.net中多彩下拉框的实现_asp.net技巧
- asp.net全局异常处理_ASP.NET技巧
- web.config详解+asp.net优化_asp.net技巧
- web.config详解+asp.net优化_asp.net技巧
- .net下生产图片验证码_asp.net技巧
- ASP.NET应用程序的安全方案--授权
- 窗体的打开_ASP.NET编程
- 黑马程序员_ASP.NET的生命周期
- 数据库连接字在web.config里的用法_asp.net技巧
- 两种添加数据到dropdownlist控件的方法_asp.net技巧
- repeater实现多列显示_ASP.NET技巧
- 妙用cache检验用户是否重复登陆_asp.net技巧
- strcpy、wcscpy与_tcscpy
- AJAX 创建XMLHttpRequest对象 联动
- MessageBoxA、MessageBoxW与MessageBox
- jrtplib库的使用
- strus.xml中result类型及含义
- 简述.Net下的应用程序授权实战步骤_ASP.NET技巧
- 关于中国高校的名称列表
- [顶] 【妙语连猪】2009经典流行话窜窜烧—(三)“难不倒我的问题”
- telnet 如何退出
- ATL::CStringT与std::basic_string
- [荐] [顶] 【妙语连猪】2009经典流行话窜窜烧—(二)“不要迷恋哥!”
- Video Wall
- struts2使用JSON插件开发Ajax
- DB2基本概念之—— 实例、数据库、表空间、容器