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


相关推荐: 湖南网站制作公司,湖南上善若水科技有限公司做什么的?  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  如何快速使用云服务器搭建个人网站?  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  Python高阶函数应用_函数作为参数说明【指导】  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  如何用西部建站助手快速创建专业网站?  个人网站制作流程图片大全,个人网站如何注销?  Laravel Docker环境搭建教程_Laravel Sail使用指南  js代码实现下拉菜单【推荐】  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  如何实现javascript表单验证_正则表达式有哪些实用技巧  iOS验证手机号的正则表达式  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  HTML 中动态设置元素 name 属性的正确语法详解  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  如何在Ubuntu系统下快速搭建WordPress个人网站?  Laravel distinct去重查询_Laravel Eloquent去重方法  Swift中swift中的switch 语句  lovemo网页版地址 lovemo官网手机登录  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  电商网站制作价格怎么算,网上拍卖流程以及规则?  如何快速启动建站代理加盟业务?  公司门户网站制作流程,华为官网怎么做?  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  如何在新浪SAE免费搭建个人博客?  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  如何快速搭建支持数据库操作的智能建站平台?  网站制作报价单模板图片,小松挖机官方网站报价?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  Laravel如何生成API文档?(Swagger/OpenAPI教程)  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  如何在IIS中新建站点并配置端口与物理路径?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  Python文件异常处理策略_健壮性说明【指导】  jQuery 常见小例汇总  如何在阿里云香港服务器快速搭建网站?  重庆市网站制作公司,重庆招聘网站哪个好?  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】