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 = “不成功”;   
}

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • s一般怎么称呼自己的m_教师节到了,聊一聊该怎么称呼尊敬的老师[通俗易懂]

    s一般怎么称呼自己的m_教师节到了,聊一聊该怎么称呼尊敬的老师[通俗易懂]01.Teacher当面看到老师不能直接叫teacher哦,但是你可以用Mr/Mrs/Miss/Ms+surname(姓)的方式来称呼老师们,这四个称谓适用的人群如下:Mr/ˈmɪstər/:(已婚/未婚)男性Mrs/ˈmɪsɪz/:(已婚)女性Miss/mɪs/:(未婚)女性Ms/mɪz/:(已婚/未婚)女性一般来讲,因为Ms不透露女性的婚姻状态,所以用其称呼女…

    2022年6月23日
    77
  • centos7查看文件系统类型_linux如何查看文件格式

    centos7查看文件系统类型_linux如何查看文件格式CentOS7查看磁盘文件系统格式(转载)

    2022年9月2日
    4
  • 大白话图解:什么是 CDN[通俗易懂]

    大白话图解:什么是 CDN[通俗易懂]  618电商节、双十一购物狂欢节,到底是什么在支撑数以万计的秒杀活动?这就不得不提一直隐姓埋名的CDN了,注意不是CSDN,而是CDN,CDN,CDN!  那到底CDN是什么鬼,这还要从西天取经说起……  1300年前,唐僧师徒取经要跋涉十万八千里,历经九九八十一难,一路打怪升级,最终才能修成正果,悟空加冕“斗战胜佛”。  1300年后,西游互联网已经开通,雷音寺…

    2025年6月9日
    4
  • Python关键字查询

    Python关键字查询Python 中的关键字 及其长度

    2025年7月27日
    4
  • html 的scor属性,scrollheight属性「建议收藏」

    html 的scor属性,scrollheight属性「建议收藏」scrollHeight属性是属于什么范畴?CSS布局HTML小编今天和大家分享问大神,Height属性到底指的是什么html设置overflow-x:scroll;属性后怎么让指定位如果页面不够长(至少窗口长度两倍),那肯定滚动不到一半的位置。否则任何浏览器都不会产生误差。下面的例子输出100个,页面加载的时候会滚动到第51个。window.onload=function(…

    2022年7月23日
    14
  • 一种基于HBase韵海量图片存储技术

    一种基于HBase韵海量图片存储技术针对海量图片存储,已有若干个基于Hadoop的方案被设计出来。这些方案在系统层小文件合并、全局名字空间以及通用性方面存在不足。本文基于HBase提出了一种海量图片存储技术,成功解决了上述问题。本文将介绍基于HBase海量图片存储技术方案,分析其原理及优势,该方案在城市交通监控中得到应用验证。   随着互联网、云计算及大数据等信息技术的发展,越来越多的应用依赖于对海量数据的存储和处理,如智

    2022年7月14日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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