最近公司要求研发一个针对web项目的授权系统,
需求是
1、项目部署后,必须与服务器绑定。防止恶意部署。
2、工具可指定期限,web项目超过指定的期限,需要经过工具授权才可正常使用。
3、通过授权文件的方式进行授权。
根据需求,以及相关加密算法的比较,决定使用RSA加密的方式进行授权,
以下为工具界面:
工具的思路大致为:
1、通过.NET封装的RSA帮助类生成公私钥。
2、生成唯一的机器码字符串。
3、通过生成的公钥与机器码字符串进行RSA加密,并形成License文件。
4、将License文件放到web项目的bin文件夹下。
5、通过对web项目编码进行是否授权判断,代码如下:
//验证授权 RSAHelper rsa = new RSAHelper(); //授权路径 string data = rsa.ReadAccreditFile(AppDomain.CurrentDomain.BaseDirectory + "\\Bin\\License"); string condition = rsa.GetHash(ComputerHelper.GetComputerInfo() + "DataRight");
//工具生成的私钥 string privateKey = ConfigurationManager.AppSettings["PrivateKey"]; privateKey = rsa.Decrypt(privateKey); string cdk = rsa.RSADecrypt(privateKey, data); if (!cdk.Equals(condition)) { return Content("对不起,您的系统尚未授权或授权已经超时!"); }
该工具可用于web项目以及winform项目授权
下载地址:http://download.csdn.net/detail/wyf_eason/9756292