EDN Admin
Well-known member
void main (){
CString sHashedPwd = "TNVBalaji";<br/>
<span style="white-space
re SHA1Hash(pwd, sHashedPwd.GetBuffer());
}
// plainText: Original text to be hash<br/>
// hashCode:<span style="white-space
re text to store hashed code, which is 40 character long string.
bool CPwdMgrX::SHA1Hash(LPCTSTR plainText, LPTSTR hashCode)<br/>
{<br/>
<span style="white-space
re bool<span style="white-space
re rc<span style="white-space
re
= true;<span style="white-space
re // Default is success<br/>
<span style="white-space
re TCHAR<span style="white-space
re rstData[256]= {0};<span style="white-space
re
// Buffer to receive hashed result<br/>
<span style="white-space
re ALG_ID<span style="white-space
re
algorithmID<span style="white-space
re = CALG_SHA1; // Use SHA1 algorithm<br/>
<span style="white-space
re HCRYPTPROV hProv = NULL; // Handle to a cryptographic service provider (CSP). <br/>
<span style="white-space
re HCRYPTHASH hHash = NULL; // Handle to the hash object needed to create a hash.<br/>
<span style="white-space
re PBYTE pbHash = NULL; // Pointer to the hash.<br/>
<span style="white-space
re DWORD dwDataLen = 0; // Length, in bytes, of the hash.<br/>
<br/>
<br/>
<span style="white-space
re //--------------------------------------------------------------------<br/>
<span style="white-space
re // Acquire a handle to the default RSA cryptographic service provider.<br/>
<span style="white-space
re if (!CryptAcquireContext(<br/>
<span style="white-space
re &hProv, // handle of the CSP<br/>
<span style="white-space
re NULL, // key container name<br/>
<span style="white-space
re NULL, // CSP name<br/>
<span style="white-space
re PROV_RSA_FULL, // provider type<br/>
<span style="white-space
re CRYPT_VERIFYCONTEXT)) // no key access is requested<br/>
<span style="white-space
re {<br/>
<span style="white-space
re printf(" Error in AcquireContext 0x%08x n", GetLastError());<br/>
<span style="white-space
re rc = false;<br/>
<span style="white-space
re goto ErrorExit;<br/>
<span style="white-space
re }<br/>
<br/>
<br/>
<span style="white-space
re if (!CryptCreateHash(<br/>
<span style="white-space
re hProv, // handle of the CSP<br/>
<span style="white-space
re algorithmID, // hash algorithm to use<br/>
<span style="white-space
re 0, // hash key<br/>
<span style="white-space
re 0, // reserved<br/>
<span style="white-space
re &hHash)) // address of hash object handle<br/>
<span style="white-space
re {<br/>
<span style="white-space
re printf("Error in CryptCreateHash 0x%08x n", GetLastError());<br/>
<span style="white-space
re rc = false;<br/>
<span style="white-space
re goto ErrorExit;<br/>
<span style="white-space
re }<br/>
<br/>
<br/>
<span style="white-space
re if (!CryptHashData(<br/>
<span style="white-space
re hHash, // handle of the hash object<br/>
<span style="white-space
re (const BYTE *) plainText, // text to be hash<br/>
<span style="white-space
re _tcslen(plainText)*sizeof(TCHAR), // number of bytes of data<br/>
<span style="white-space
re 0)) // flags<br/>
<span style="white-space
re {<br/>
<span style="white-space
re printf("Error in CryptHashData 0x%08x n", GetLastError());<br/>
<span style="white-space
re rc = false;<br/>
<span style="white-space
re goto ErrorExit;<br/>
<span style="white-space
re }<br/>
<br/>
<br/>
<span style="white-space
re if (!CryptGetHashParam(<br/>
<span style="white-space
re hHash, // handle of the HMAC hash object<br/>
<span style="white-space
re HP_HASHVAL, // query on the hash value<br/>
<span style="white-space
re NULL, // pointer to the HMAC hash value<br/>
<span style="white-space
re &dwDataLen, // length,in bytes, of the hash<br/>
<span style="white-space
re 0))<br/>
<span style="white-space
re {<br/>
<span style="white-space
re printf("Error in CryptGetHashParam 0x%08x n", GetLastError());<br/>
<span style="white-space
re rc = false;<br/>
<span style="white-space
re goto ErrorExit;<br/>
<span style="white-space
re }<br/>
<br/>
<br/>
<span style="white-space
re pbHash = (BYTE*)malloc(dwDataLen);<br/>
<span style="white-space
re if(NULL == pbHash) <br/>
<span style="white-space
re {<br/>
<span style="white-space
re printf("unable to allocate memoryn");<br/>
<span style="white-space
re goto ErrorExit;<br/>
<span style="white-space
re }<br/>
<br/>
<br/>
<span style="white-space
re if (!CryptGetHashParam(<br/>
<span style="white-space
re hHash, // handle of the HMAC hash object<br/>
<span style="white-space
re HP_HASHVAL, // query on the hash value<br/>
<span style="white-space
re pbHash, // pointer to the HMAC hash value<br/>
<span style="white-space
re &dwDataLen, // length,in bytes, of the hash<br/>
<span style="white-space
re 0))<br/>
<span style="white-space
re {<br/>
<span style="white-space
re printf("Error in CryptGetHashParam 0x%08x n", GetLastError());<br/>
<span style="white-space
re rc = false;<br/>
<span style="white-space
re goto ErrorExit;<br/>
<span style="white-space
re }<br/>
<br/>
<br/>
<span style="white-space
re //CString s = (char*)pbHash;<br/>
<span style="white-space
re TCHAR tmpBuffer[3] = {0};<br/>
<span style="white-space
re for (DWORD i = 0 ; i < dwDataLen ; i++) <br/>
<span style="white-space
re {<br/>
<span style="white-space
re tmpBuffer[0] = 0; tmpBuffer[1] = 0; tmpBuffer[2] = 0;<span style="white-space
re
// clear<br/>
<span style="white-space
re _stprintf_s(tmpBuffer, _T("%2.2x"),pbHash);<br/>
<span style="white-space
re _tcscat_s(rstData, tmpBuffer);<br/>
<span style="white-space
re }<br/>
<span style="white-space
re _tcscpy(hashCode, rstData);<br/>
<br/>
<br/>
<span style="white-space
re // Free resources.<br/>
ErrorExit:<br/>
<span style="white-space
re if(hHash)<br/>
<span style="white-space
re CryptDestroyHash(hHash); <br/>
<span style="white-space
re if(hProv)<br/>
<span style="white-space
re CryptReleaseContext(hProv, 0);<br/>
<span style="white-space
re if(pbHash)<br/>
free(pbHash);<br/>
<br/>
<span style="white-space
re return rc;<br/>
}
Error Message
=================
---------------------------<br/>
Microsoft Visual C++ Debug Library<br/>
---------------------------<br/>
Debug Assertion Failed!<br/>
<br/>
<br/>
Program: C
rogram FilesInternet ExplorerIEXPLORE.EXE<br/>
File: f:ddvctoolscrt_bldself_x86crtsrcdbgheap.c<br/>
Line: 1317<br/>
<br/>
<br/>
Expression: _CrtIsValidHeapPointer(pUserData)<br/>
<br/>
<br/>
For information on how your program can cause an assertion<br/>
failure, see the Visual C++ documentation on asserts.<br/>
<br/>
<br/>
(Press Retry to debug the application)<br/>
---------------------------<br/>
Abort Retry Ignore <br/>
---------------------------<br/>
Please Help to resolve the issue.
<hr class="sig www.tnvbalaji.com
View the full article
CString sHashedPwd = "TNVBalaji";<br/>
<span style="white-space

}
// plainText: Original text to be hash<br/>
// hashCode:<span style="white-space

bool CPwdMgrX::SHA1Hash(LPCTSTR plainText, LPTSTR hashCode)<br/>
{<br/>
<span style="white-space



= true;<span style="white-space

<span style="white-space



// Buffer to receive hashed result<br/>
<span style="white-space


algorithmID<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<br/>
<br/>
<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<br/>
<br/>
<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<br/>
<br/>
<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<br/>
<br/>
<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<br/>
<br/>
<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<br/>
<br/>
<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<br/>
<br/>
<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space


// clear<br/>
<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<br/>
<br/>
<span style="white-space

ErrorExit:<br/>
<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

<span style="white-space

free(pbHash);<br/>
<br/>
<span style="white-space

}
Error Message
=================
---------------------------<br/>
Microsoft Visual C++ Debug Library<br/>
---------------------------<br/>
Debug Assertion Failed!<br/>
<br/>
<br/>
Program: C

File: f:ddvctoolscrt_bldself_x86crtsrcdbgheap.c<br/>
Line: 1317<br/>
<br/>
<br/>
Expression: _CrtIsValidHeapPointer(pUserData)<br/>
<br/>
<br/>
For information on how your program can cause an assertion<br/>
failure, see the Visual C++ documentation on asserts.<br/>
<br/>
<br/>
(Press Retry to debug the application)<br/>
---------------------------<br/>
Abort Retry Ignore <br/>
---------------------------<br/>
Please Help to resolve the issue.
<hr class="sig www.tnvbalaji.com
View the full article