欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    先介紹一款小巧的hash工具,就是下圖這個,可以計算文件的md5值,SHA1值和CRC32值。不到100kb,功能也很簡單,就是對文件進行校驗,檢查是否被篡改過。

    對于網上下載linux操作系統和windows操作系統,進行安裝的人會很方便,校驗后對比官方提供的校驗值??芍牢募欠癖淮鄹牧?,是否被添加了不明來源程序。

    下面我們通過編程實現它,這個是界面。

    這里只實現了md5校驗。

    關鍵函數如下,線程中計算md5值。

    UINT ThreadProc(LPVOID pParam)
    {
    	b_IsRunning=1;
    	g_csThreadRunning.Lock();
    	CHashDlg *myHashDlg=(CHashDlg*)pParam;
    
    	int m_TotalFiles=myHashDlg->m_FileArray.GetCount();
    
    	myHashDlg->m_ProgressTotal.SetRange(0, m_TotalFiles);
    	for (int i=0; i < m_TotalFiles; i++)
    	{
    		MD5_CTX md5_ctx;
    		unsigned char decrypt[16];
    
    		char* m_binbuf;
    		ULONGLONG m_binlen;
    		CFile BinFile;
    		if (!BinFile.Open((LPCTSTR)(myHashDlg->m_FileArray.GetAt(i)), CFile::modeRead | CFile::typeBinary)) {
    			continue;
    		}
    
    		m_binlen=BinFile.GetLength();
    		int totalBlock=m_binlen / 102400 + 1;
    		myHashDlg->m_ProgressFile.SetRange(0, totalBlock);
    		m_binbuf=new char[1024000];
    		int totalread=0;
    		MD5Init(&md5_ctx);
    		for (;;) {
    			int readlen=BinFile.Read(m_binbuf, 1024000);
    			if (readlen <=0) {
    				break;
    			}
    			totalread +=readlen;
    
    			myHashDlg->m_ProgressFile.SetPos(totalread / 102400);
    			MD5Update(&md5_ctx, (PUCHAR)m_binbuf, readlen);
    			if (b_IsRunning !=1) {
    				break;
    			}
    		}
    		myHashDlg->m_ProgressFile.SetPos(totalBlock);
    
    		delete[] m_binbuf;
    
    		MD5Final(&md5_ctx, decrypt);
    		BinFile.Close();
    
    		myHashDlg->m_ProgressTotal.SetPos(i);
    		if (b_IsRunning !=1) {
    			break;
    		}
    
    		CString md5String;
    		for (int i=0; i < 16; i++)
    		{
    			//printf("%02x", decrypt[i]);
    			TCHAR szW[20];
    			_stprintf_s(szW, 20, _T("%02X"), decrypt[i]);
    			md5String.Append(szW);
    		}
    		CString strFileLen;
    		strFileLen.Format(_T("%lld bytes"), m_binlen);
    		myHashDlg->m_MD5Result +=_T("File: ");
    		myHashDlg->m_MD5Result +=myHashDlg->m_FileArray.GetAt(i);
    		myHashDlg->m_MD5Result +=_T("\r\n");
    
    		myHashDlg->m_MD5Result +=_T("Size: ");
    		myHashDlg->m_MD5Result +=strFileLen;
    		myHashDlg->m_MD5Result +=_T("\r\n");
    
    		myHashDlg->m_MD5Result +=md5String;
    		myHashDlg->m_MD5Result +=_T("\r\n");
    		myHashDlg->m_MD5Result +=_T("\r\n");
    		myHashDlg->SendMessage(WM_UPDATEMYDATA, FALSE);
    	}
    	myHashDlg->m_ProgressTotal.SetPos(m_TotalFiles);
    
    	g_csThreadRunning.Unlock();
    	return 0;
    }

    選擇文件函數,選擇后開始計算。

    void CHashDlg::OnBnClickedButtonSelectFiles()
    {
    	CFileDialog   Dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT);
    	if (Dlg.DoModal()==IDOK)
    	{
    		b_IsRunning=0;
    		g_csThreadRunning.Lock();
    		m_FileArray.RemoveAll();
    		POSITION pos=Dlg.GetStartPosition();
    		while (pos)
    		{
    			m_FileArray.Add(Dlg.GetNextPathName(pos));
    		}
    		g_csThreadRunning.Unlock();
    		if (m_FileArray.GetCount() > 0) {
    			b_IsRunning=1;
    			CWinThread* pThread=AfxBeginThread(ThreadProc, this);
    		}
    	}
    }


    下面是md5算法實現文件

    這是本號建立以來第一次發正經的內容,歡迎大家瀏覽評論。

    工欲善其事必先利其器,作為計算機這一學科來說,c語言是我們大多初學者的入門之選,今天我給大家分享一款c語言的編程工具,vc++6.0。

    下載完成后先解壓,然后打開文件夾,點擊安裝程序。VC6.0完整綠色版 中文.exe


    在歡迎頁點擊下一步。

    選擇自己想要安裝的位置,位置自己要記住。

    點擊下一步,這里的創建快捷方式框可以不選(有人不習慣在桌面放好多圖標)

    點擊安裝。

    安裝完成后,先不要運行,因為win10系統可能會不兼容

    選擇安裝文件夾里的MSDEV.EXE文件復制

    粘貼到安裝目錄下\Common\MSDev98\Bin文件夾里,選擇替換

    然后打開軟件,新建工程進行測試

    輸出我們的入門程序hello world!

    到這里我們的vc++6.0程序就算是安裝完成了。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有