C# License

C# License第一步:生成一组公钥和私钥,公钥用于你发布程序,私钥属于注册码生成。using(RSACryptoServiceProviderrsa=new RSACryptoServiceProvider())  {  stringpubkey=rsa.ToXmlString(false);  //公钥 stringprikey=rsa.ToXmlString(t

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
第一步:生成一组公钥和私钥,公钥用于你发布程序,私钥属于注册码生成。


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的编号。

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;  
}

第三步:编写注册码生成WinForm程序,使用CPU的编号来生成注册码,当然你也可以用 WebForm来写。
using(RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())   
{   
rsa.FromXmlString(“私钥”);   
RSAPKCS1SignatureFormatter f = new RSAPKCS1SignatureFormatter(rsa);   // 加密对象   
f.SetHashAlgorithm(“SHA1”);   
byte[] source = System.Text.ASCIIEncoding.ASCII.GetBytes(“CPU的编号”);   
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,你要高兴也可保存成其它多种格式。  
//也可以保存在注册表中或是web.config中,总之能让你的发布的应用程序能读的到就行。  
}

第四步:在发布的程序相关地方添加对注册码有效性的验证。如添加在程序启动的时候,程序执行特定操作的时候等等,总之看你的需要做有效性的验证。
//相关注册码获取代码……  
//以下代码是发布程序使用公钥对注册码进行验证  
using(RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())   
{   
rsa.FromXmlString(“公钥”);   
RSAPKCS1SignatureDeformatter f = new RSAPKCS1SignatureDeformatter(rsa);   
  
f.SetHashAlgorithm(“SHA1”);   
  
byte[] key = Convert.FromBase64String(“注册码”);   
  
SHA1Managed sha = new SHA1Managed();   
byte[] name = sha.ComputeHash(ASCIIEncoding.ASCII.GetBytes(“CPU编号”));   
if(f.VerifySignature(name,key))   
msg.Text = “验证成功”; //可以return true;等方式返回相应的状态  
else   
msg.Text = “不成功”;   
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/164387.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Runnable接口详细详解「建议收藏」

    Runnable接口详细详解「建议收藏」创建线程对象,默认有一个线程名,以Thread-开头,从0开始计数构造函数Thread()Thread-0Thread-1Thread-2其他构造方法Thread(Runnabletarget)如果在构造thread的时候没有传递Runnable或者没有复写Thread的run方法,该thread将不会调用任何的东西,如果传递了Runnable接口的实例,后者复写了Thread的run方法,则会执行该方法的逻辑单元(逻辑代码)publicclassCreateThread2..

  • pycharm汉化版安装[通俗易懂]

    pycharm汉化版安装[通俗易懂]pycharm汉化版安装想要学好一门语言一款好用的编辑软件非常的重要,最近公司要做一款智能机器人的客服聊天系统,用到python刚开始使用eclipse编辑,发现效果不太理想,毕竟不是专业化软件。好了废话少说开启pycharm的安装之旅吧!一、首先呢当然是下载,不过呢我已经准备好了!赶快通过百度云下载吧,链接:百度云链接密码:32g6二、下载完成解压到自己想保存

  • Tomcat频繁宕机的原因分析「建议收藏」

    Tomcat频繁宕机的原因分析「建议收藏」资源!没有完全释放,用完后要父NULL值;数据库连接顺序关闭;优化JAVA虚拟机加入相应的内存参数;TOMCAT在LINUX下不是很稳定;String类型使用,不符合规范;不要在数据库中获取大段文本;JAVA不推荐用String获取大量信息,造成内存溢出就是它;

  • 最长递增子序列(LIS)[通俗易懂]

    最长递增子序列(LIS)[通俗易懂]①dp[i]表示以i为结尾的最长子序列长度②dp[i]表示长度为i的最长递增子序列末尾的数

  • windows10查看硬盘是不是ssd_win10怎么看硬盘是不是固态

    windows10查看硬盘是不是ssd_win10怎么看硬盘是不是固态转自:http://www.w10zj.com/Win10xy/Win10yh_7732.html如何判断是否是ssd硬盘?在win10操作系统中我们该如何查看当前主机中安装的是固态硬盘还是机械硬盘

  • 二进制运算的补码规则是什么_二进制补码符号位参与运算吗

    二进制运算的补码规则是什么_二进制补码符号位参与运算吗本文的直接思路来源是:https://www.codeproject.com/Articles/874396/Crunching-Numbers-with-AVX-and-AVXForexample,supposeavectorcontainssignedbytes,sothemaximumvalueforeachelementis127(0x7F).If…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号