Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
XEngine
XEngine Authorize
提交
51dd07f0
X
XEngine Authorize
项目概览
XEngine
/
XEngine Authorize
10 个月 前同步成功
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
XEngine Authorize
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
51dd07f0
编写于
11月 30, 2021
作者:
xengine-qyt
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
example:suppport encrypto datas transmission
上级
098873b4
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
56 addition
and
29 deletion
+56
-29
XEngine_Apps/Authorize_APPClient/Authorize_APPClient.cpp
XEngine_Apps/Authorize_APPClient/Authorize_APPClient.cpp
+56
-29
未找到文件。
XEngine_Apps/Authorize_APPClient/Authorize_APPClient.cpp
浏览文件 @
51dd07f0
...
...
@@ -2,6 +2,7 @@
#include <Windows.h>
#include <tchar.h>
#pragma comment(lib,"Ws2_32.lib")
#pragma comment(lib,"x86//XEngine_Core/XEngine_OPenSsl.lib")
#pragma comment(lib,"x86//XEngine_Client/XClient_Socket.lib")
#else
#include <stdio.h>
...
...
@@ -12,9 +13,11 @@
using
namespace
std
;
#include <XEngine_Include/XEngine_CommHdr.h>
#include <XEngine_Include/XEngine_ProtocolHdr.h>
#include <XEngine_Include/XEngine_BaseLib/BaseLib_Define.h>
#include <XEngine_Include/XEngine_Core/OPenSsl_Define.h>
#include <XEngine_Include/XEngine_Core/OPenSsl_Error.h>
#include <XEngine_Include/XEngine_Client/XClient_Define.h>
#include <XEngine_Include/XEngine_Client/XClient_Error.h>
#include <XEngine_Include/XEngine_BaseLib/BaseLib_Define.h>
#include <XEngine_Include/XEngine_HelpComponents/Authorize_Define.h>
#include "../../XEngine_Source/XAuth_Protocol.h"
//g++ -std=c++17 -Wall -g Auth_APPClient.cpp -o Auth_APPClient.exe -L ../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_BaseLib -L ../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_Client -L ../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_AuthorizeReg -lXEngine_BaseLib -lXClient_Socket -lXEngine_AuthRegClient -lpthread -Wl,-rpath=../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_BaseLib:../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_Client:../../../XEngine/XEngine_Release/XEngine_Linux/Ubuntu/XEngine_AuthorizeReg,--disable-new-dtags
...
...
@@ -29,6 +32,7 @@ BOOL bReadTxt = TRUE;
BOOL
bDelete
=
TRUE
;
BOOL
bTry
=
TRUE
;
BOOL
bTimeOut
=
TRUE
;
BOOL
bEncrypto
=
TRUE
;
SOCKET
m_Socket
=
0
;
LPCTSTR
lpszUser
=
_T
(
"123123aa"
);
...
...
@@ -42,17 +46,21 @@ XHTHREAD AuthClient_Thread()
{
while
(
bRun
)
{
int
nMsgLen
=
2048
;
TCHAR
tszMsgBuffer
[
2048
];
memset
(
tszMsgBuffer
,
'\0'
,
sizeof
(
tszMsgBuffer
));
int
nMsgLen
=
0
;
TCHAR
*
ptszMsgBuffer
;
XENGINE_PROTOCOLHDR
st_ProtocolHdr
;
if
(
XClient_TCPSelect_RecvMsg
(
m_Socket
,
tszMsgBuffer
,
&
nMsgLen
,
TRUE
))
memset
(
&
st_ProtocolHdr
,
'\0'
,
sizeof
(
XENGINE_PROTOCOLHDR
));
if
(
XClient_TCPSelect_RecvPkt
(
m_Socket
,
&
ptszMsgBuffer
,
&
nMsgLen
,
&
st_ProtocolHdr
))
{
XENGINE_PROTOCOLHDR
st_ProtocolHdr
;
memset
(
&
st_ProtocolHdr
,
'\0'
,
sizeof
(
XENGINE_PROTOCOLHDR
));
memcpy
(
&
st_ProtocolHdr
,
tszMsgBuffer
,
sizeof
(
XENGINE_PROTOCOLHDR
));
TCHAR
tszMsgBuffer
[
4096
];
memset
(
tszMsgBuffer
,
'\0'
,
sizeof
(
tszMsgBuffer
));
if
(
nMsgLen
>
0
)
{
//只有有后续数据的情况才需要解密
OPenSsl_XCrypto_Decoder
(
ptszMsgBuffer
,
&
nMsgLen
,
tszMsgBuffer
,
lpszPass
);
}
if
(
XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REPDEL
==
st_ProtocolHdr
.
unOperatorCode
)
{
bDelete
=
FALSE
;
...
...
@@ -103,14 +111,21 @@ XHTHREAD AuthClient_Thread()
}
else
if
(
XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REPGETPASS
==
st_ProtocolHdr
.
unOperatorCode
)
{
bPass
=
FALSE
;
if
(
0
==
st_ProtocolHdr
.
wReserve
)
{
XENGINE_PROTOCOL_USERAUTH
st_AuthProtocol
;
memset
(
&
st_AuthProtocol
,
'\0'
,
sizeof
(
XENGINE_PROTOCOL_USERAUTH
));
memcpy
(
&
st_AuthProtocol
,
tszMsgBuffer
+
sizeof
(
XENGINE_PROTOCOLHDR
),
sizeof
(
XENGINE_PROTOCOL_USERAUTH
));
bPass
=
FALSE
;
printf
(
_T
(
"找回密码成功,账号:%s,密码:%s
\n
"
),
st_AuthProtocol
.
tszUserName
,
st_AuthProtocol
.
tszUserPass
);
if
(
0
==
st_ProtocolHdr
.
unPacketSize
)
{
printf
(
_T
(
"找回密码成功,账号密码已发送到你的邮箱
\n
"
));
}
else
{
XENGINE_PROTOCOL_USERAUTH
st_AuthProtocol
;
memset
(
&
st_AuthProtocol
,
'\0'
,
sizeof
(
XENGINE_PROTOCOL_USERAUTH
));
memcpy
(
&
st_AuthProtocol
,
tszMsgBuffer
+
sizeof
(
XENGINE_PROTOCOLHDR
),
sizeof
(
XENGINE_PROTOCOL_USERAUTH
));
printf
(
_T
(
"找回密码成功,账号:%s,密码:%s
\n
"
),
st_AuthProtocol
.
tszUserName
,
st_AuthProtocol
.
tszUserPass
);
}
}
else
{
...
...
@@ -176,25 +191,45 @@ XHTHREAD AuthClient_Thread()
return
0
;
}
BOOL
AuthRegClient_Protocol_Send
(
LPCTSTR
lpszMsgBuffer
,
TCHAR
*
ptszMsgBuffer
,
int
*
pInt_MsgLen
,
UINT
en_AuthProtocol
,
BYTE
byCrypto
=
0
)
BOOL
AuthRegClient_Protocol_Send
(
LPCTSTR
lpszMsgBuffer
,
TCHAR
*
ptszMsgBuffer
,
int
*
pInt_MsgLen
,
UINT
en_AuthProtocol
)
{
//填充协议
TCHAR
tszMsgBuffer
[
4096
];
XENGINE_PROTOCOLHDR
st_ProtocolHdr
;
//协议头
memset
(
tszMsgBuffer
,
'\0'
,
sizeof
(
tszMsgBuffer
));
memset
(
&
st_ProtocolHdr
,
'\0'
,
sizeof
(
XENGINE_PROTOCOLHDR
));
st_ProtocolHdr
.
wHeader
=
XENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADER
;
st_ProtocolHdr
.
unOperatorType
=
ENUM_XENGINE_COMMUNICATION_PROTOCOL_TYPE_AUTH
;
st_ProtocolHdr
.
unOperatorCode
=
en_AuthProtocol
;
st_ProtocolHdr
.
unPacketSize
=
*
pInt_MsgLen
;
st_ProtocolHdr
.
wCrypto
=
byCrypto
;
st_ProtocolHdr
.
wTail
=
XENGIEN_COMMUNICATION_PACKET_PROTOCOL_TAIL
;
memcpy
(
ptszMsgBuffer
,
&
st_ProtocolHdr
,
sizeof
(
XENGINE_PROTOCOLHDR
));
if
(
*
pInt_MsgLen
>
0
)
if
(
bEncrypto
)
{
st_ProtocolHdr
.
wCrypto
=
ENUM_XENGINE_PROTOCOLHDR_CRYPTO_TYPE_XCRYPT
;
if
(
*
pInt_MsgLen
>
0
)
{
OPenSsl_XCrypto_Encoder
(
lpszMsgBuffer
,
(
int
*
)
&
st_ProtocolHdr
.
unPacketSize
,
(
UCHAR
*
)
tszMsgBuffer
,
lpszPass
);
memcpy
(
ptszMsgBuffer
,
&
st_ProtocolHdr
,
sizeof
(
XENGINE_PROTOCOLHDR
));
memcpy
(
ptszMsgBuffer
+
sizeof
(
XENGINE_PROTOCOLHDR
),
tszMsgBuffer
,
st_ProtocolHdr
.
unPacketSize
);
}
else
{
memcpy
(
ptszMsgBuffer
,
&
st_ProtocolHdr
,
sizeof
(
XENGINE_PROTOCOLHDR
));
}
*
pInt_MsgLen
=
sizeof
(
XENGINE_PROTOCOLHDR
)
+
st_ProtocolHdr
.
unPacketSize
;
}
else
{
memcpy
(
ptszMsgBuffer
+
sizeof
(
XENGINE_PROTOCOLHDR
),
lpszMsgBuffer
,
st_ProtocolHdr
.
unPacketSize
);
memcpy
(
ptszMsgBuffer
,
&
st_ProtocolHdr
,
sizeof
(
XENGINE_PROTOCOLHDR
));
if
(
*
pInt_MsgLen
>
0
)
{
memcpy
(
ptszMsgBuffer
+
sizeof
(
XENGINE_PROTOCOLHDR
),
lpszMsgBuffer
,
st_ProtocolHdr
.
unPacketSize
);
}
*
pInt_MsgLen
=
sizeof
(
XENGINE_PROTOCOLHDR
)
+
st_ProtocolHdr
.
unPacketSize
;
}
*
pInt_MsgLen
=
sizeof
(
XENGINE_PROTOCOLHDR
)
+
st_ProtocolHdr
.
unPacketSize
;
return
TRUE
;
}
int
AuthClient_Register
()
...
...
@@ -261,14 +296,6 @@ int AuthClient_Login()
strcpy
(
st_AuthUser
.
tszUserPass
,
lpszPass
);
int
nMsgLen
=
sizeof
(
XENGINE_PROTOCOL_USERAUTH
);
/*使用加密发送
CHAR tszEnBuffer[2048];
memset(tszEnBuffer, '\0', sizeof(tszEnBuffer));
OPenSsl_XCrypto_Encoder((LPCTSTR)&st_AuthUser, &nMsgLen, (UCHAR*)tszMsgBuffer, "123123");
AuthRegClient_Protocol_Send(tszMsgBuffer, tszEnBuffer, &nMsgLen, XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REQLOGIN, 4);
*/
AuthRegClient_Protocol_Send
((
LPCTSTR
)
&
st_AuthUser
,
tszMsgBuffer
,
&
nMsgLen
,
XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_AUTH_REQLOGIN
);
if
(
!
XClient_TCPSelect_SendMsg
(
m_Socket
,
tszMsgBuffer
,
nMsgLen
))
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录