分享基于字符串加密的MD5算法实例代码

互联网 17-7-26
基于字符串加密的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   }

以上就是分享基于字符串加密的MD5算法实例代码的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 加密
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:.net使用Cache框架的实例介绍

相关资讯