數據解密函數設計
數據加密函數可以點這裏: 數據加密函數的設計
數據解密函數
函數名: 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;//返回經過解密的字符串
}