數據解密函數設計

數據解密函數設計

數據加密函數可以點這裏: 數據加密函數的設計

數據解密函數

函數名:		Decrypt
函數描述:	數據解密函數
參數:		const CString &sString - 需要解密的數據
返回值	    CString - 經過解密的數據

本解密函數是加密函數的反函數。解密策略如下:
對於需要解密的字符串符,按照順序將每兩個字符轉換爲整數,然後與對應的加密因子進行異或操作,異或的結果即爲原始的數據。
比如:前兩個字符爲"51",轉換爲整數爲0x51,0x51 ^ ‘0’ = 0x61,即字符’a’

extern __declspec(dllexport) CString WINAPI Decrypt(const CString &sString)
{
	//構造加密因子
	char sCode[10];
	for(int nIdx=0; nIdx<10; nIdx++)
	{
		sCode[nIdx] = '9' - nIdx;
	}

	int nLen = sString.GetLength();
	CString sDncrypt = _T("");
	char sChar[2];
	//一次處理兩個字符
	for(nIdx=0; nIdx<nLen; nIdx+=2)
	{
		sChar[0] = sString.GetAt(nIdx);
		sChar[1] = sString.GetAt(nIdx+1);
		//轉換爲整數
		char ch = (char)strtoul(sChar,NULL,16);
		//獲取加密因子
		char chCode = sCode[(nIdx/2)%10];
		//與相應的加密因子進行異或
		ch ^= chCode;
		//記錄解密後的數據
		sDncrypt += ch;
	}
	return sDncrypt;//返回經過解密的字符串
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章