base
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
// Crypt.h
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "crypt.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[]=__FILE__;
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
char* CCrypt::m_pszKey = "SPConsole1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
|
||||
CString CCrypt::Encrypt(CString sString)
|
||||
{
|
||||
USES_CONVERSION;
|
||||
|
||||
int nKeyLen = (int)strlen(m_pszKey);
|
||||
int iPos = (int)sString.GetLength() % nKeyLen;
|
||||
|
||||
CString sRet;
|
||||
|
||||
LPCSTR pszAscii = T2CA(sString);
|
||||
for (unsigned int i = 0;i < strlen(pszAscii); i++) {
|
||||
CString sTemp = sRet;
|
||||
sRet.Format(_T("%s%03d"), sTemp, (unsigned char)pszAscii[i] ^ m_pszKey[(i + iPos) % nKeyLen]);
|
||||
}
|
||||
|
||||
return sRet;
|
||||
}
|
||||
|
||||
CString CCrypt::Decrypt(CString sString)
|
||||
{
|
||||
USES_CONVERSION;
|
||||
|
||||
LPCSTR pszAscii = T2CA(sString);
|
||||
|
||||
int nKeyLen = (int)strlen(m_pszKey);
|
||||
int iPos = ((int)strlen(pszAscii) / 3) % nKeyLen;
|
||||
|
||||
CString sRet;
|
||||
|
||||
TCHAR szTemp[2];
|
||||
szTemp[1] = 0;
|
||||
for (unsigned int i = 0; i < strlen(pszAscii) / 3; i++) {
|
||||
int nDigit, nNumber = 0;
|
||||
|
||||
nDigit = pszAscii[i * 3];
|
||||
if (nDigit < '0' || nDigit > '9')
|
||||
return _T("");
|
||||
nNumber += (nDigit - '0') * 100;
|
||||
nDigit = pszAscii[i * 3 + 1];
|
||||
if (nDigit < '0' || nDigit > '9')
|
||||
return _T("");
|
||||
nNumber += (nDigit - '0') * 10;
|
||||
nDigit = pszAscii[i * 3 + 2];
|
||||
if (nDigit < '0' || nDigit > '9')
|
||||
return _T("");
|
||||
nNumber += nDigit - '0';
|
||||
|
||||
szTemp[0] = nNumber ^ m_pszKey[(i + iPos) % nKeyLen];
|
||||
sRet += szTemp;
|
||||
}
|
||||
|
||||
return sRet;
|
||||
}
|
||||
Reference in New Issue
Block a user