MD5加密

问题描述

wstringBinary2Str(PBYTEpbBuffer,DWORDdwLen,WCHARwSeparator){wstringrv;WCHARszItem[3]={0x0};for(DWORDd=0;d<dwLen;d++){swprintf(szItem,L"%02X",pbBuffer[d]);rv.push_back(szItem[0]);rv.push_back(szItem[1]);if(wSeparator&&(d<dwLen-1)){rv.push_back(wSeparator);}}returnrv;}BOOLCalcMD5(PBYTEpbData,DWORDdwDataLen,PBYTEpbBuffer,PDWORDpdwBufferLen){BOOLrv=FALSE;HCRYPTPROVhProv=NULL;HCRYPTHASHhHash=NULL;__try{//检查输入参数并确保输入的缓冲有Byteif(!pbData/*||!dwDataLen*/||!pbBuffer||!pdwBufferLen||*pdwBufferLen<16){__leave;}//获得CSP句柄if(!CryptAcquireContext(&hProv,NULL,MS_DEF_PROV,PROV_RSA_FULL,CRYPT_VERIFYCONTEXT)){__leave;}//创建HASH对象if(!CryptCreateHash(hProv,CALG_MD5,0,0,&hHash)){__leave;}//计算HASH数据if(!CryptHashData(hHash,pbData,dwDataLen,0)){__leave;}//获得HASH值if(!CryptGetHashParam(hHash,HP_HASHVAL,pbBuffer,pdwBufferLen,0)){__leave;}//置成功标志rv=TRUE;}__finally{//关闭HASH对象if(hHash){CryptDestroyHash(hHash);}//关闭CSP句柄if(hProv){CryptReleaseContext(hProv,0);}}returnrv;}wstringCalcMD5(PBYTEpbData,DWORDdwDataLen){wstringrv;BYTEBuffer[16]={0x0};DWORDdwBufferLen=sizeof(Buffer);if(CalcMD5(pbData,dwDataLen,Buffer,&dwBufferLen)){rv=Binary2Str(Buffer,dwBufferLen,L'');}returnrv;}wstringCalcMD5(LPCWSTRlpszString){wstringrv;BYTEBuffer[16]={0x0};DWORDdwBufferLen=sizeof(Buffer);if(lpszString&&CalcMD5((PBYTE)lpszString,(DWORD)wcslen(lpszString)*sizeof(WCHAR),Buffer,&dwBufferLen)){rv=Binary2Str(Buffer,dwBufferLen,L'');}returnrv;}int_tmain(intargc,_TCHAR*argv[]){wstringResult=CalcMD5(L"1");return0;}

解决方案

解决方案二:
求大神转换成c#程序
解决方案三:
md5加密,不管哪种语言实现,原理都是一样的。你度娘找个C#的例子~
解决方案四:
生成文件的MD5,供参考,加密字节数组只需要改变一下参数publicbyte[]GetMD5(stringfileName){byte[]md5array=newbyte[16];if(!File.Exists(fileName))returnmd5array;using(MD5md5=MD5.Create()){using(FileStreamfs=File.OpenRead(fileName)){md5array=md5.ComputeHash(fs);}}returnmd5array;}

解决方案五:
publicstaticstringGetMd5(stringstrIn){using(MD5md5=MD5.Create()){byte[]byteHash=md5.ComputeHash(System.Text.Encoding.Default.GetBytes(strIn));stringstrRes=BitConverter.ToString(byteHash).Replace("-","");returnstrRes.ToLower();}

如果结果不一样那就是你的源代码有特殊处理
解决方案六:
这个是c#md5加密

时间: 2024-08-24 08:08:48

MD5加密的相关文章

破解md5加密的方法

我们知道md5加密是不可逆转的,但是要破解md5的加密也很简单. 网上也有很多在线的破解.既然是不可逆转的,那么网上的那些破解是怎么来的呢? 原因很简单,就是使用穷举法来进行破解. 如:我们计算出键盘上所有字符的组合的md5,将加密前后的字符串分别存入数据库中: 然后拿你的md5加密后的字符串进行查询得出加密前的字符串.这就是在线破解的奥秘. 但是这种破解方法也有局限性.如:我对单一一个字符串进行多次的md5加密,那么我们破解就要反复的进行穷举. 如果你不知道字符串被md5加密了多少次,那么就要

java的md5加密类(zt)

加密 java的md5加密类 MD5算法是将数据进行不可逆加密的算法有较好的安全性,在国内如寿信的安全支付平台就采用此算法. 源代码如下/************************************************MD5 算法的Java BeanLast Modified:10,Mar,2001*************************************************/ import java.lang.reflect.*; /************

MD5加密的javascript实现

javascript|加密 <script>/* MD5 Message-Digest Algorithm - JavaScriptMODIFICATION HISTORY:1.0 16-Feb-2001 - Phil Fresle (<A href="mailto:sales@frez.co.uk">sales@frez.co.uk</A>) - Initial Version (VB/ASP code)1.0 21-Feb-2001 - Enri

用PHP写的MD5加密函数

函数|加密 用PHP写的MD5加密函数 //php_md5("字符串")define("BITS_TO_A_BYTE",8);define("BYTES_TO_A_WORD",4);define("BITS_TO_A_WORD",32);$m_lOnBits=array(30);$m_l2Power=array(30); function LShift($lValue,$iShiftBits){        if ($iSh

ASP中使用MD5加密字符

加密 下载过动网论坛.或者其他注册程序的用户知道,在用户注册时,系统给注册的密码进行了MD5的加密. 介绍使用方法: 在需要使用MD5加密时,调用MD5.asp文件:<!--#include file="md5.asp"--> 进行字符加密:MD5(加密字符) MD5.asp文件代码:<%Private Const BITS_TO_A_BYTE = 8Private Const BYTES_TO_A_WORD = 4Private Const BITS_TO_A_WO

MD5加密的&amp;#106avascript实现

加密 <script>/* MD5 Message-Digest Algorithm - JavaScriptMODIFICATION HISTORY:1.0 16-Feb-2001 - Phil Fresle (<A href="mailto:sales@frez.co.uk">sales@frez.co.uk</A>) - Initial Version (VB/ASP code)1.0 21-Feb-2001 - Enrico Mosanghi

技巧应用:ASP.Net中的MD5加密

asp.net|技巧|加密 其实在ASP.Net编程中,不用调用md5.asp来加密数据.在DotNet中有自带的类: System.Web.Security.HashPasswordForStoringInConfigFile() 以下是引用片段:public string md5(string str,int code)  {  if(code==16) //16位MD5加密(取32位加密的9~25字符)  {  return System.Web.Security.FormsAuthent

在ASP中使用MD5加密

加密 在需要使用MD5加密时: -------------------------------------------------------------------------------- <!--#include file="md5.asp"--> md5(加密字符) -------------------------------------------------------------------------------- md5.asp ------------

ASP.Net及Asp中的MD5加密-16位32位

asp.net|加密 asp.net引用内容:public string md5(string str,int code){ if(code==16) //16位MD5加密(取32位加密的9~25字符) { return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str,"MD5").ToLower().Substring(8,16) ; }  else//32位加密 { ret

ASP下使用md5加密注册信息

加密 制作登陆行为时可能需要用到MD5加密用户密码,使用ASP实现这个功能比其他语言稍微麻烦一点,但是也是可行的. 核心代码: <%PrivateConstBITS_TO_A_BYTE=8PrivateConstBYTES_TO_A_WORD=4PrivateConstBITS_TO_A_WORD=32 Privatem_lOnBits(30)Privatem_l2Power(30) PrivateFunctionLShift(lValue,iShiftBits) IfiShiftBits=0T