Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
HYH.Registry
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张龙涛
HYH.Registry
Commits
647a7a47
Commit
647a7a47
authored
Aug 23, 2021
by
zhanglongtao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
测试
parent
2c5d6c01
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
216 additions
and
87 deletions
+216
-87
ComputerInfoHelper.cs
...try.Application/Services/Encryption/ComputerInfoHelper.cs
+47
-0
EncryptionDto.cs
...Registry.Application/Services/Encryption/EncryptionDto.cs
+18
-4
EncryptionService.cs
...stry.Application/Services/Encryption/EncryptionService.cs
+92
-63
HYH.Registry.Application.xml
src/HYH.Registry.Web.Host/HYH.Registry.Application.xml
+59
-20
No files found.
src/HYH.Registry.Application/Services/Encryption/ComputerInfoHelper.cs
View file @
647a7a47
...
...
@@ -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
+
"] "
;
}
...
...
src/HYH.Registry.Application/Services/Encryption/EncryptionDto.cs
View file @
647a7a47
...
...
@@ -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
;
}
}
}
src/HYH.Registry.Application/Services/Encryption/EncryptionService.cs
View file @
647a7a47
...
...
@@ -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
...
...
src/HYH.Registry.Web.Host/HYH.Registry.Application.xml
View file @
647a7a47
...
...
@@ -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.Get
NetCard
MACAddress"
>
<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.Get
FirstMacAddress
"
>
<member
name=
"M:HYH.Registry.Services.Encryption.EncryptionService.Get
GeneratingCiphertext(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.Get
HardDiskSerialNumber
"
>
<member
name=
"M:HYH.Registry.Services.Encryption.EncryptionService.Get
FirstMacAddress
"
>
<summary>
获取
硬盘序列号
获取
第一个mac地址
</summary>
<returns></returns>
</member>
<member
name=
"M:HYH.Registry.Services.Encryption.EncryptionService.Get
GeneratedCode
"
>
<member
name=
"M:HYH.Registry.Services.Encryption.EncryptionService.Get
MACIp
"
>
<summary>
合成码
获取Mac地址
</summary>
<returns></returns>
</member>
<member
name=
"M:HYH.Registry.Services.Encryption.EncryptionService.Get
GeneratingCiphertext(HYH.Registry.Services.Encryption.EncryptionDto)
"
>
<member
name=
"M:HYH.Registry.Services.Encryption.EncryptionService.Get
Name
"
>
<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>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment