VC++ 字符串String MD5计算小工具 VS2008工程

发布时间 - 2026-01-11 02:28:11    点击率:

基于字符串加密的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计算  # C字符串与C++中string的区别详解  # C++ 读文件 将文件内容读入到字符串string中的方法  # C++ string 字符串查找匹配实例代码  # C++ 中String 替换指定字符串的实例详解  # 详解C++ string常用截取字符串方法  # 详解NSString 与C++ string字符串的互转  # 详解C++的String类的字符串分割实现  # 详解C++ string字符串类  # C++中的string类(C++字符串)入门完全攻略  # 多字  # 源码下载  # 实现了  # GetLength  # m_sText  # CStringW  # LPCTSTR  # ANSI2UNICODE  # char  # len  # cTemp  # m_bType  # NULL  # cIdentity  # TRUE  # m_bUpper  # MakeUpper  # false  # MakeLower  # CMd5A 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: javascript中数组(Array)对象和字符串(String)对象的常用方法总结  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  浅谈redis在项目中的应用  香港服务器部署网站为何提示未备案?  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  PHP 500报错的快速解决方法  网站建设整体流程解析,建站其实很容易!  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  非常酷的网站设计制作软件,酷培ai教育官方网站?  *服务器网站为何频现安全漏洞?  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  佛山企业网站制作公司有哪些,沟通100网上服务官网?  独立制作一个网站多少钱,建立网站需要花多少钱?  C语言设计一个闪闪的圣诞树  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  如何用已有域名快速搭建网站?  如何用虚拟主机快速搭建网站?详细步骤解析  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  公司网站制作价格怎么算,公司办个官网需要多少钱?  中山网站制作网页,中山新生登记系统登记流程?  如何破解联通资金短缺导致的基站建设难题?  javascript中对象的定义、使用以及对象和原型链操作小结  如何在IIS中新建站点并配置端口与IP地址?  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  文字头像制作网站推荐软件,醒图能自动配文字吗?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  Linux系统运维自动化项目教程_Ansible批量管理实战  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  JavaScript如何操作视频_媒体API怎么控制播放  成都网站制作公司哪家好,四川省职工服务网是做什么用?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  如何在云主机上快速搭建网站?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  如何在万网开始建站?分步指南解析  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  长沙做网站要多少钱,长沙国安网络怎么样?  如何在 Pandas 中基于一列条件计算另一列的分组均值  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  LinuxShell函数封装方法_脚本复用设计思路【教程】  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  如何为不同团队 ID 动态生成多个独立按钮  清除minerd进程的简单方法  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率