我建了如下一段代码:
void StringEncrypt(const char* pchBase, const unsigned char* pchStr, unsigned char* pchOut)
{
int i,nCodeLen,nBaseLen;
nCodeLen = strlen((const char*)pchStr);
nBaseLen = strlen(pchBase); unsigned char* buf = new unsigned char[nBaseLen];
memset(buf, 0, nBaseLen); for(i = 0 ; i < nBaseLen ; i++)
buf[i] = pchBase[i] ^ pchStr[i % nCodeLen];
buf[nBaseLen] = '\0'; for(i = 0 ; i < nBaseLen ; i++)
pchOut[i] = ~((buf[nBaseLen - i - 1] >> 4) | (buf[nBaseLen - i - 1] << 4));
pchOut[nBaseLen] = '\0';
}当设定 pchStr[] = {0x9a, 0x3a,0xd7, 0x7b};时
pchStr[i%nCodeLen]等于0
且发现只要pchStr[i%nCodeLen]>127时均会等于0,不知为何?
请高手解决!!