设为首页 加入收藏

TOP

C语言文件操作函数的编写(三)
2015-01-22 20:57:04 来源: 作者: 【 】 浏览:60
Tags:语言 文件 操作 函数 编写
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

首页 上一页 1 2 3 4 5 6 下一页 尾页 3/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言笔记1--类型、运算符与表达式 下一篇我理解的objective-C内存管理

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: