From 2cb46a57e6bf71e2a1fe3a7a987ae41a4394e956 Mon Sep 17 00:00:00 2001 From: yuanyuanxiang <962914132@qq.com> Date: Sat, 8 Nov 2025 21:16:51 +0800 Subject: [PATCH] Improve: Generate HMAC while generating pass code --- server/2015Remote/2015Remote.rc | Bin 103074 -> 103332 bytes server/2015Remote/2015RemoteDlg.cpp | 4 +++- server/2015Remote/CPasswordDlg.cpp | 4 ++++ server/2015Remote/CPasswordDlg.h | 1 + server/2015Remote/resource.h | Bin 52852 -> 52944 bytes 5 files changed, 8 insertions(+), 1 deletion(-) diff --git a/server/2015Remote/2015Remote.rc b/server/2015Remote/2015Remote.rc index 67b6a03ef665bd1a7a9a36a33b36d459cc9af829..afabec76b77c10a0f3fa306861d041119891c162 100644 GIT binary patch delta 235 zcmZ3qlx@j!whe2Vn9UdrCO1YL++5InfSK8Z!DzDLbjiu<_Umn~YOi1lNXb4H%~)aO zcd&AopFj6Z9`_im@0j%4R_ z>HlI$@BA%OxvTo)7!6)E`gDlZU+kV7*QLU5#9+jr1H`5bhCteIa-xaht@Ik~%=G#vrW>20-ooEryc=n#4BG c=(fq4yx=~^Fb6$0Gx4E`~Uy| delta 196 zcmZ3ooNdukwhe2Vm`xcBCO1YL++5InfSK7C$Z@q18Za0!=m4=PgCUqU gpPXo*KY3Z#fyn_)Vw+QXY_cZnJ(k=2<=cii0OplLsQ>@~ diff --git a/server/2015Remote/2015RemoteDlg.cpp b/server/2015Remote/2015RemoteDlg.cpp index 4e7b30c..b572532 100644 --- a/server/2015Remote/2015RemoteDlg.cpp +++ b/server/2015Remote/2015RemoteDlg.cpp @@ -3139,8 +3139,10 @@ void CMy2015RemoteDlg::OnToolInputPassword() CInputDialog dlg(this); dlg.m_str = pwd; dlg.Init("更改口令", "请输入新的口令:"); + dlg.Init2("HMAC (非必须):", THIS_CFG.GetStr("settings", "HMAC", "").c_str()); if (dlg.DoModal() == IDOK) { THIS_CFG.SetStr("settings", "Password", dlg.m_str.GetString()); + THIS_CFG.SetStr("settings", "HMAC", dlg.m_sSecondInput.GetString()); #ifdef _DEBUG SetTimer(TIMER_CHECK, 10 * 1000, NULL); #else @@ -3613,7 +3615,7 @@ LRESULT CALLBACK CMy2015RemoteDlg::LowLevelKeyboardProc(int nCode, WPARAM wParam } } } - else if (g_2015RemoteDlg->m_pActiveSession) + else if (g_2015RemoteDlg->m_pActiveSession && operateWnd) { auto screen = (CScreenSpyDlg*)(g_2015RemoteDlg->m_pActiveSession); if (!screen->m_bIsCtrl) { diff --git a/server/2015Remote/CPasswordDlg.cpp b/server/2015Remote/CPasswordDlg.cpp index 7a9e08c..5827a42 100644 --- a/server/2015Remote/CPasswordDlg.cpp +++ b/server/2015Remote/CPasswordDlg.cpp @@ -164,6 +164,7 @@ void CPwdGenDlg::DoDataExchange(CDataExchange* pDX) DDX_Control(pDX, IDC_EDIT_HOSTNUM, m_EditHostNum); DDX_Text(pDX, IDC_EDIT_HOSTNUM, m_nHostNum); DDV_MinMaxInt(pDX, m_nHostNum, 2, 10000); + DDX_Control(pDX, IDC_EDIT_HMAC, m_EditHMAC); } @@ -197,9 +198,12 @@ void CPwdGenDlg::OnBnClickedButtonGenkey() std::string hardwareID = getHardwareID(); std::string hashedID = hashSHA256(hardwareID); std::string deviceID = getFixedLengthID(hashedID); + std::string hmac = genHMAC(pwdHash, m_sUserPwd.GetString()); + m_EditHMAC.SetWindowTextA(hmac.c_str()); if (deviceID == m_sDeviceID.GetString()) { // 授权的是当前主控程序 auto settings = "settings", pwdKey = "Password"; THIS_CFG.SetStr(settings, pwdKey, fixedKey.c_str()); + THIS_CFG.SetStr(settings, "HMAC", hmac); } } diff --git a/server/2015Remote/CPasswordDlg.h b/server/2015Remote/CPasswordDlg.h index df9a5d6..421b563 100644 --- a/server/2015Remote/CPasswordDlg.h +++ b/server/2015Remote/CPasswordDlg.h @@ -76,4 +76,5 @@ public: virtual BOOL OnInitDialog(); CEdit m_EditHostNum; int m_nHostNum; + CEdit m_EditHMAC; }; diff --git a/server/2015Remote/resource.h b/server/2015Remote/resource.h index dc39aeeb70b56f9ca20542d0e06a4b48e7363eda..6149df6a03f03b3acfa8c1a9eebb3c2a9ef8e80e 100644 GIT binary patch delta 41 zcmV+^0M`HXoCDCE1F+DT2S@--06_plk