You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
2.4 KiB
C#

2 years ago
using Estsh.Core.Const;
using Estsh.Core.IServices;
using Estsh.Core.Models;
using Estsh.Core.Repository.IRepositories;
using Estsh.Core.Util;
using Hardware.Info;
using Newtonsoft.Json;
using System.Text;
/***************************************************************************************************
*
* sitong.dong
*
* 2022.06.22
*
*
**************************************************************************************************/
namespace Estsh.Core.Services
{
public class LicenseService : BaseService<SysEnum>, ILicenseService
{
public LicenseService(IEnumRepository iRepository) : base(iRepository)
{
}
public string GetLicenseRegistInfo()
{
return LicenseRegistInfoEncrypt();
}
/// <summary>
/// 对授权注册码加密
/// </summary>
/// <returns></returns>
private string LicenseRegistInfoEncrypt()
{
string licenseStr = JsonConvert.SerializeObject(LicenseUtil.licenseInfo);
string licenseAes = SecurityEncDecrypt.EncryptDES(licenseStr, CommonConstWords.AES_KEY);
return licenseAes;
}
/// <summary>
/// 发放授权码给工厂
/// </summary>
/// <param name="licenseRegistAes">工厂给到的授权注册码</param>
/// <param name="expireTime">授权到期时间</param>
/// <returns></returns>
public string GetLicenseInfo(string licenseRegistAes, string expireTime)
{
string licenseStr = SecurityEncDecrypt.DecryptDES(licenseRegistAes, CommonConstWords.AES_KEY);
LicenseInfo licenseInfo = JsonConvert.DeserializeObject<LicenseInfo>(licenseStr);
licenseInfo.licenseEndDateTime = expireTime;
licenseInfo.licenseStartDateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
RsaHelper rsaHelper = new RsaHelper(RSAType.RSA2, Encoding.UTF8, CommonConstWords.RSA_PRIVATE_KEY, CommonConstWords.RSA_PUBLIC_KEY);
string licenseE = rsaHelper.SubEncrypt(JsonConvert.SerializeObject(licenseInfo));
return licenseE;
}
public LicenseInfo LicenseActivate(string licenseStr)
{
LicenseUtil.LicenseActivate(licenseStr);
return LicenseUtil.licenseInfo;
}
}
}