void
CEncryptByMd5Dlg::OnButtonOk()
{
UpdateData(
true
);
unsigned
int
len=0;
char
*cTemp =NULL;
if
(m_bType==0)
{
len=m_sText.GetLength();
cTemp=(
char
*)(
LPCTSTR
)m_sText;
}
else
{
len=CStringW(m_sText).GetLength()*2;
cTemp=(
char
*)ANSI2UNICODE(m_sText);
}
char
*cIdentity;
CMd5A md5;
cIdentity = md5.MDString(cTemp,len);
m_sEncrypt = CString(cIdentity);
if
(m_bUpper==TRUE)
{
m_sEncrypt.MakeUpper();
}
else
{
m_sEncrypt.MakeLower();
}
UpdateData(
false
);
}
void
CEncryptByMd5Dlg::OnBnClickedBtnCompare()
{
UpdateData(
true
);
if
(m_sEncrypt==m_szMD5_2)
{
MessageBox(_T(
"密文比较结果相同!"
),_T(
"比较相同"
),MB_OK|MB_ICONINFORMATION);
}
else
{
MessageBox(_T(
"密文比较结果失败!"
),_T(
"比较不同"
),MB_OK|MB_ICONERROR);
}
UpdateData(FALSE);
}
void
CEncryptByMd5Dlg::OnEnChangeEdit1()
{
OnButtonOk();
}
char
* CEncryptByMd5Dlg::Unicode2ANSI(CString strSource)
{
if
(strSource.IsEmpty())
return
NULL;
char
*pBuffer = NULL;
int
nBufferSize = 0;
#ifdef _UNICODE
nBufferSize = WideCharToMultiByte(CP_ACP, 0, (
LPCTSTR
)strSource, -1, NULL, 0, NULL, NULL) + 1;
pBuffer =
new
char
[nBufferSize];
memset
(pBuffer, 0,
sizeof
(
char
)*nBufferSize);
WideCharToMultiByte(CP_ACP, 0, (
LPCTSTR
)strSource, -1, pBuffer, nBufferSize, NULL, NULL);
#else
nBufferSize = strSource.GetLength() + 1;
pBuffer =
new
char
[nBufferSize];
memset
(pBuffer, 0,
sizeof
(
char
)*nBufferSize);
strcpy_s(pBuffer, nBufferSize, (
LPCTSTR
)strSource);
#endif
return
pBuffer;
}
wchar_t
* CEncryptByMd5Dlg::ANSI2UNICODE(CString pData)
{
int
nLength = MultiByteToWideChar(CP_ACP, 0, pData, -1, NULL, 0);
wchar_t
*pwBuffer =
new
wchar_t
[nLength + 1];
memset
(pwBuffer, 0,
sizeof
(
wchar_t
)*(nLength + 1));
MultiByteToWideChar(CP_ACP, 0, pData, -1, pwBuffer, nLength);
return
pwBuffer;
}
void
CEncryptByMd5Dlg::OnBnClickedCheckUpper()
{
OnButtonOk();
}
void
CEncryptByMd5Dlg::OnBnClickedRadio1()
{
OnButtonOk();
}
void
CEncryptByMd5Dlg::OnBnClickedRadio2()
{
OnButtonOk();
}