ength,pfr); int i;
for (i = 0; i < length;i++)
{
//加密方法是,于指定字符串进行异或操作
p[i] ^= ch;
}
//写入文件
fwrite(p,sizeof(char),length,pfw);
fclose(pfr);
fclose(pfw);
}
return 1;
}
/*************************************************************
Function :deCodeFileByChar()
Description :通过ch进行解密文件,并将文件输出到指定的文件中
Calls :被本函数调用的函数清单
CalledBy :调用本函数的函数清单
TableAccessed :被访问的表(此项仅对于牵扯到数据库操作的程序)
TableUpdated :被修改的表(此项对于牵扯到数据库操作的程序)
pDestFile :要写入的文件
pOriginalFile :原始文件
ch :用于解密的字符
Output :输出的信息为空
Return :如果写入成功返回1,如果写入失败返回0
Others :其它说明
*************************************************************/
int deCodeFileByChar(const char *pDestFile,
const char *pOriginalFile, const char ch)
{
FILE *pfr, *pfw;
pfr = fopen(pOriginalFile, "r");
pfw = fopen(pDestFile,"w");
if (pfr == NULL || pfw == NULL)
{
fclose(pfr);
fclose(pfw);
//如果是成功,则
return 0;
}
else
{
//读取原始文件的大小
int length = getFileSize(pOriginalFile);
//分配内存,读取文件
char *p = (char *) malloc(sizeof(char) * length);
//读取文件到内存中
fread(p, sizeof(char), length, pfr);
int i;
for (i = 0; i < length; i++)
{
//解密方法是,于指定字符串进行异或操作
p[i] ^= ch;
}
fwrite(p, sizeof(char), length, pfw);
//关闭文件
fclose(pfr);
fclose(pfw);
}
return 1;
}
/*************************************************************
Function :stringEncrypt()
Description :将字符串变成字符串加密后的字符串
Calls :被本函数调用的函数清单
CalledBy :调用本函数的函数清单
TableAccessed :被访问的表(此项仅对于牵扯到数据库操作的程序)
TableUpdated :被修改的表(此项对于牵扯到数据库操作的程序)
pwdStr :将字符串变成加密后的字符串
str :要加密的字符串
Output :输出的信息为空
Return :返回加密后的字符串地址
Others :其它说明
*************************************************************/
char * str2EncryptString(char *pwdStr, char *str)
{
//获取加密长度
int pwdStrLength = strlen(pwdStr);
//获取字符串的长度
int strLength = strlen(str);
if (strLength % pwdStrLength)
{
int times = strLength / pwdStrLength;
int i, j;
//循环次数
for (i = 0; i < times; i++)
{
for (j = 0; j < pwdStrLength;j++)
{
str[pwdStrLength * i + j] ^= pwdStr[j];
}
}
}
else
{
//获取循环次数
int times = strLength / pwdStrLength;
int i, j;
for (i = 0; i < times;i++)
{
//循环密码
for (j = 0; j < pwdStrLength;j++)
{
str[pwdStrLength * i + j] ^= pwdStr[j];
}
}
//剩下的长度
int lastLength = strLength % pwdStrLength;
for (i = 0; i < lastLength;i++)
{
str[pwdStrLength * (strLength / pwdStrLength) + i] ^= pwdStr[i];
}
}
return str;
}
/*************************************************************
Function :str2DecodedString()
Description :将字符串变成解密之后的文件
Calls :被本函数调用的函数清单
CalledBy :调用本函数的函数清单
TableAccessed :被访问的表(此项仅对于牵扯到数据库操作的程序)
TableUpdated :被修改的表(此项对于牵扯到数据库操作的程序)
pwdStr :将字符串变成加密后的字符串
str :要解密的字符串
Output :输出的信息为空
Return :返回解密后的字符串地址
Others :其它说明
*************************************************************/
char * str2DecodedString(char *pwdStr, char *str)
{
//获取加密长度
int pwdStrLength = strlen(pwdStr);
//获取字符串的长度
int strLength = strlen(str);
if (strLength % pwdStrLength)
{
int times = strLength / pwdStrLength;
int i, j;
//循环次数
for (i = 0; i < times; i++)
{
for (j = 0; j < pwdStrLength; j++)
{
str[pwdStrLength * i + j] ^= pwdStr[j];
}
}
}
else
{
//获取循环次数
int times = strLength / pwdStrLength;
int i, j;
for (i = 0; i < times; i++)
{
//循环密码
for (j = 0; j < pwdStrLength; j++)
{
str[pwdStrLength * i + j] ^= pwdStr[j];
}
}
//剩下的长度
int lastLength = strLength % pwdStrLength;
for (i = 0; i < lastLength; i++)
{
str[pwdStrLength * (strLength / pwdStrLength) + i] ^= pwdStr[i];
}
}
return str;
}
/*************************************************************
Function :encryptAndDecodeFileByString()
Description :通过字符串str来加解密文件
Calls :被本函数调用的函数清单
CalledBy :调用本函数的函数清单
TableAccessed :被访问的表(此项仅对于牵扯到数据库操作的程序)
TableUpdated :被修改的表(此项对于牵扯到数据库操作的程序)
pDestFile :要写入的文件
pOriginalFile :原始文件
pwdString :用于加解密的字符
Output :输出的信息为空
Return :如果写入成功返回1