VC++ 字符串String MD5计算小工具 VS2008工程
2019/7/10 22:43:58
本文主要是介绍VC++ 字符串String MD5计算小工具 VS2008工程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
基于字符串加密的MD5算法,VS2008 VC++,多字节编译工程。主要代码如下,实现了ANSI字符串加密与Unicode字符串加密。
运行效果如下:
核心代码:
void CEncryptByMd5Dlg::OnButtonOk() { // TODO: Add your control notification handler code here 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() { // TODO: Add your control notification handler code here 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() { // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the CDialog::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. OnButtonOk(); // TODO: Add your control notification handler code here } 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(); // TODO: Add your control notification handler code here } void CEncryptByMd5Dlg::OnBnClickedRadio1() { OnButtonOk(); // TODO: Add your control notification handler code here } void CEncryptByMd5Dlg::OnBnClickedRadio2() { OnButtonOk(); // TODO: Add your control notification handler code here }
VS2008 MFC工程源码下载:点击打开链接
这篇关于VC++ 字符串String MD5计算小工具 VS2008工程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-29Excel中实现拖动排序的简易教程
- 2024-11-29如何在Excel中使用拖动排序功能
- 2024-11-28阿里云 ECS课程:新手入门教程
- 2024-11-27Excel中实现拖动排序的简单教程
- 2024-11-27Rocket消息队列资料:新手入门指南
- 2024-11-27rocket消息队资料详解与入门指南
- 2024-11-27RocketMQ底层原理资料详解入门教程
- 2024-11-27RocketMQ项目开发资料:新手入门教程
- 2024-11-27RocketMQ项目开发资料详解
- 2024-11-27RocketMQ消息中间件资料入门教程