Commit 647a7a47 authored by zhanglongtao's avatar zhanglongtao

测试

parent 2c5d6c01
......@@ -8,8 +8,54 @@ using System.Text;
namespace HYH.Registry.Services.Encryption
{
/// <summary>
///
/// </summary>
public static class ComputerInfoHelper
{
/// <summary>
/// 获取电脑 MAC(物理) 地址
/// </summary>
/// <returns></returns>
public static string GetMACAddress()
{
//获取本机所有网络连接
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
if (nics == null || nics.Length < 1)
{
return "";
}
var MACIp = "";
foreach (NetworkInterface adapter in nics)
{
string macip = "";
var adapterName = adapter.Name;
//var adapterDescription = adapter.Description;
//var NetworkInterfaceType = adapter.NetworkInterfaceType;
PhysicalAddress address = adapter.GetPhysicalAddress();
byte[] bytes = address.GetAddressBytes();
for (int i = 0; i < bytes.Length; i++)
{
macip += bytes[i].ToString("X2");
if (i != bytes.Length - 1)
{
macip += ":";
}
}
if (adapter.OperationalStatus == OperationalStatus.Up && !string.IsNullOrEmpty(adapterName) && !string.IsNullOrEmpty(macip))
{
MACIp += macip;
break;
}
}
return MACIp;
}
//获取硬盘序列号
public static string GetHardDiskSerialNumber()
{
......@@ -148,6 +194,7 @@ namespace HYH.Registry.Services.Encryption
}
}
//}
MACIp += "[" + adapterName + ":" + macip + "-" + adapterDescription + "-" + NetworkInterfaceType + "] ";
}
......
......@@ -5,21 +5,35 @@ using System.Text;
namespace HYH.Registry.Services.Encryption
{
/// <summary>
///
/// 加密dto
/// </summary>
public class EncryptionDto
{
/// <summary>
///
/// 合成码
/// </summary>
public string CipherText { get; set; }
/// <summary>
///
/// 公司名称
/// </summary>
public string CompanyName { get; set; }
/// <summary>
///
/// 日期
/// </summary>
public string ExpirationDate { get; set; }
}
/// <summary>
/// 保存授权码dto
/// </summary>
public class SaveCiphertextDto
{
/// <summary>
/// 授权码
/// </summary>
public string AuthorizationCode { get; set; }
/// <summary>
/// 租户号
/// </summary>
public string TenantCode { get; set; }
}
}
......@@ -5,6 +5,7 @@ using HYH.Core.DbModels;
using HYH.Registry.DbModels;
using HYH.Registry.EntityFrameworkCore;
using HYH.SqlSugarCore;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using System;
......@@ -36,6 +37,97 @@ namespace HYH.Registry.Services.Encryption
}
/// <summary>
/// 获取Mac地址
/// </summary>
/// <returns></returns>
[HttpGet]
public string GetMACAddress()
{
string MACAddress = ComputerInfoHelper.GetMACAddress();
return MACAddress;
}
/// <summary>
/// 获取合成码
/// </summary>
/// <returns></returns>
[AllowAnonymous]
[HttpGet]
public string GetGeneratedCode()
{
string data = ComputerInfoHelper.GetMACAddress();
//string hostName = ComputerInfoHelper.GetHostName();
//string data = netCardMACAddress;
var result = AESHelper.AESEncrypt(data, "jianzhukeji", "jzkj");
return result;
}
/// <summary>
/// 生成授权码
/// </summary>
/// <returns></returns>
[AllowAnonymous]
[HttpPost]
public string GetGeneratingCiphertext(EncryptionDto input)
{
// 解密
string data = AESHelper.AESDecrypt(input.CipherText, "jianzhukeji", "jzkj");
// 到期时间
string timeStr = Convert.ToDateTime(input.ExpirationDate).ToString("yyyy-MM-dd HH:mm:ss");
// 公司名称
string companyName = input.CompanyName;
data = timeStr + data + companyName;
data = data.PadRight(72);
// 加密
var result = AESHelper.AESEncrypt(data, "jianzhukeji", "jzkj");
return result;
}
/// <summary>
/// 保存加密后的密文到数据库租户表
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[AllowAnonymous]
[HttpPost]
public async Task<IActionResult> SaveCiphertext(SaveCiphertextDto input)
{
var tenant = _repTenant.FirstOrDefault(q => q.Code == input.TenantCode);
tenant.RegistryCipher = input.AuthorizationCode;
await _repTenant.UpdateAsync(tenant);
return new JsonResult(true);
}
/// <summary>
/// 登录的密文验证
/// </summary>
/// <returns></returns>
public async Task<IActionResult> LoginCipherCertification()
{
bool flag = false;
try
{
string netCardMACAddress = ComputerInfoHelper.GetMACAddress();
var tenant = await _repTenant.FirstOrDefaultAsync(q => q.Code == _currentUser.TenantCode);
if (!string.IsNullOrEmpty(tenant.RegistryCipher))
{
// 解密
var dataString = AESHelper.AESDecrypt(tenant.RegistryCipher, "jianzhukeji", "jzkj");
string timeStr = dataString.Substring(0, 19);
DateTime dateTime = Convert.ToDateTime(timeStr);
if (dateTime > DateTime.Now)
{
flag = true;
}
}
}
catch (Exception ex)
{
string str = ex.Message;
}
return new JsonResult(flag);
}
/// <summary>
/// 获取Mac地址
......@@ -97,69 +189,6 @@ namespace HYH.Registry.Services.Encryption
string hardDiskSerialNumber = ComputerInfoHelper.GetHardDiskSerialNumber();
return hardDiskSerialNumber;
}
/// <summary>
/// 合成码
/// </summary>
/// <returns></returns>
[HttpGet]
public string GetGeneratedCode()
{
//string netCardMACAddress = ComputerInfoHelper.GetNetCardMACAddress();
//string hardDiskSerialNumber = ComputerInfoHelper.GetHardDiskSerialNumber();
string netCardMACAddress = ComputerInfoHelper.GetMACIp();
string hostName = ComputerInfoHelper.GetHostName();
string data = netCardMACAddress + hostName;
var dataLen = data.Length;
var result = AESHelper.AESEncrypt(data, "jianzhukeji", "jzkj");
var length = result.Length;
return result;
}
/// <summary>
/// 生成密文
/// </summary>
/// <returns></returns>
[HttpGet]
public string GetGeneratingCiphertext(EncryptionDto input)
{
string data = AESHelper.AESDecrypt(input.CipherText, "jianzhukeji", "jzkj");
//var tenant = _repTenant.FirstOrDefault(q => q.Code == _currentUser.TenantCode);
string timeStr = Convert.ToDateTime(input.ExpirationDate).ToString("yyyy-MM-dd HH:mm:ss");
string companyName = input.CompanyName;
//string time = input.ExpirationDate;
//string companyName = input.CompanyName;
data = timeStr + data + companyName;
data = data.PadRight(72);
var datalen = data.Length;
var result = AESHelper.AESEncrypt(data, "jianzhukeji", "jzkj");
var length = result.Length;
return result;
}
/// <summary>
/// 登录的密文验证
/// </summary>
/// <returns></returns>
public async Task<IActionResult> LoginCipherCertification()
{
bool flag = false;
string netCardMACAddress = ComputerInfoHelper.GetMACIp();
string hostName = ComputerInfoHelper.GetHostName();
var tenant = await _repTenant.FirstOrDefaultAsync(q => q.Code == _currentUser.TenantCode);
if (!string.IsNullOrEmpty(tenant.RegistryCipher))
{
// 解密
var dataString = AESHelper.AESDecrypt(tenant.RegistryCipher, "jianzhukeji", "jzkj");
string timeStr = dataString.Substring(0, 19);
DateTime dateTime = Convert.ToDateTime(timeStr);
if (dateTime > DateTime.Now)
{
flag = true;
}
}
return new JsonResult(flag);
}
/// <summary>
/// 获取内网ip
......
......@@ -37,6 +37,17 @@
<param name="Vector">向量</param>
<returns>明文</returns>
</member>
<member name="T:HYH.Registry.Services.Encryption.ComputerInfoHelper">
<summary>
</summary>
</member>
<member name="M:HYH.Registry.Services.Encryption.ComputerInfoHelper.GetMACAddress">
<summary>
获取电脑 MAC(物理) 地址
</summary>
<returns></returns>
</member>
<member name="M:HYH.Registry.Services.Encryption.ComputerInfoHelper.GetHostName">
<summary>
......@@ -57,22 +68,37 @@
</member>
<member name="T:HYH.Registry.Services.Encryption.EncryptionDto">
<summary>
加密dto
</summary>
</member>
<member name="P:HYH.Registry.Services.Encryption.EncryptionDto.CipherText">
<summary>
合成码
</summary>
</member>
<member name="P:HYH.Registry.Services.Encryption.EncryptionDto.CompanyName">
<summary>
公司名称
</summary>
</member>
<member name="P:HYH.Registry.Services.Encryption.EncryptionDto.ExpirationDate">
<summary>
日期
</summary>
</member>
<member name="T:HYH.Registry.Services.Encryption.SaveCiphertextDto">
<summary>
保存授权码dto
</summary>
</member>
<member name="P:HYH.Registry.Services.Encryption.SaveCiphertextDto.AuthorizationCode">
<summary>
授权码
</summary>
</member>
<member name="P:HYH.Registry.Services.Encryption.SaveCiphertextDto.TenantCode">
<summary>
租户号
</summary>
</member>
<member name="T:HYH.Registry.Services.Encryption.EncryptionService">
......@@ -85,57 +111,70 @@
构造函数
</summary>
</member>
<member name="M:HYH.Registry.Services.Encryption.EncryptionService.GetNetCardMACAddress">
<member name="M:HYH.Registry.Services.Encryption.EncryptionService.GetMACAddress">
<summary>
获取Mac地址
</summary>
<returns></returns>
</member>
<member name="M:HYH.Registry.Services.Encryption.EncryptionService.PrintAllMacAddress">
<member name="M:HYH.Registry.Services.Encryption.EncryptionService.GetGeneratedCode">
<summary>
获取所有Mac地址
获取合成码
</summary>
<returns></returns>
</member>
<member name="M:HYH.Registry.Services.Encryption.EncryptionService.GetFirstMacAddress">
<member name="M:HYH.Registry.Services.Encryption.EncryptionService.GetGeneratingCiphertext(HYH.Registry.Services.Encryption.EncryptionDto)">
<summary>
获取第一个mac地址
生成授权码
</summary>
<returns></returns>
</member>
<member name="M:HYH.Registry.Services.Encryption.EncryptionService.GetMACIp">
<member name="M:HYH.Registry.Services.Encryption.EncryptionService.SaveCiphertext(HYH.Registry.Services.Encryption.SaveCiphertextDto)">
<summary>
保存加密后的密文到数据库租户表
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:HYH.Registry.Services.Encryption.EncryptionService.LoginCipherCertification">
<summary>
登录的密文验证
</summary>
<returns></returns>
</member>
<member name="M:HYH.Registry.Services.Encryption.EncryptionService.GetNetCardMACAddress">
<summary>
获取Mac地址
</summary>
<returns></returns>
</member>
<member name="M:HYH.Registry.Services.Encryption.EncryptionService.GetName">
<member name="M:HYH.Registry.Services.Encryption.EncryptionService.PrintAllMacAddress">
<summary>
获取电脑名称
获取所有Mac地址
</summary>
<returns></returns>
</member>
<member name="M:HYH.Registry.Services.Encryption.EncryptionService.GetHardDiskSerialNumber">
<member name="M:HYH.Registry.Services.Encryption.EncryptionService.GetFirstMacAddress">
<summary>
获取硬盘序列号
获取第一个mac地址
</summary>
<returns></returns>
</member>
<member name="M:HYH.Registry.Services.Encryption.EncryptionService.GetGeneratedCode">
<member name="M:HYH.Registry.Services.Encryption.EncryptionService.GetMACIp">
<summary>
合成码
获取Mac地址
</summary>
<returns></returns>
</member>
<member name="M:HYH.Registry.Services.Encryption.EncryptionService.GetGeneratingCiphertext(HYH.Registry.Services.Encryption.EncryptionDto)">
<member name="M:HYH.Registry.Services.Encryption.EncryptionService.GetName">
<summary>
生成密文
获取电脑名称
</summary>
<returns></returns>
</member>
<member name="M:HYH.Registry.Services.Encryption.EncryptionService.LoginCipherCertification">
<member name="M:HYH.Registry.Services.Encryption.EncryptionService.GetHardDiskSerialNumber">
<summary>
登录的密文验证
获取硬盘序列号
</summary>
<returns></returns>
</member>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment