本人C语言较差,所以想找人写一下,希望能找个兄弟写一下,不是无偿的哦,有报酬的,最好是能在代码上附加一下,讲解,就是这段代码的作用,麻烦咯各位。
加密需要确定好想要的加密规则,然后根据规则写代码就可以了,一个简单的例子:
逐行读取文件,把文件中的所有字符根据ASCII码加1,然后写入加密文件。解密的时候进行反向操作,即可得到原始文件。
示例代码运行结果:
示例代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[])
{
FILE* fp1 = 0, * fp2 = 0;
char ch;
int flag = -1; //0表示加密,1表示解密,-1表示错误
if (argc != 4)
{
printf("参数个数不符合要求,请输入如下执行:\n");
printf("./程序名 操作类型(encode/decode) 源文件名 目的文件名称\n");
printf("如程序名为mycode.exe,需要对hello.txt文件加密,加密后的文件为hello_encode.txt,则命令如下:\n");
printf("mycode.exe encode hello.txt hello_incode.txt\n");
return 0;
}
//检查命令是否正确
if (strcmp(argv[1], "encode") == 0)
flag = 0;//加密操作
else if (strcmp(argv[1], "decode") == 0)
flag = 1;//解密操作
else
{
printf("指令中的操作类型不正确,请输入encode或decode\n");
return 0;
}
//打开文件并处理
fp1 = fopen(argv[2], "rb"); //以读方式打开源文件
if (fp1 == 0)
{
printf("%s文件不存在或无访问权限,文件打开失败\n", argv[2]);
return 0;
}
fp2 = fopen(argv[3], "wb");//以写方式打开目的文件
//读文件并逐个字符处理
while (!feof(fp1))
{
if (fread(&ch, 1, 1, fp1) != 1) //读取错误,读取1个字符,返回1,否则即为读取错误
break;
if (flag == 0) //加密
{
if (ch != '\n') //回车符不做处理
ch = ch + 1;
fwrite(&ch, 1, 1, fp2);
}
else
{
if (ch != '\n')
ch = ch - 1;
fwrite(&ch, 1, 1, fp2);
}
}
//关闭文件
fclose(fp1);
fclose(fp2);
if (flag == 0)
printf("加密成功!\n");
else
printf("解密成功!\n");
return 0;
}
如果可以用Java写,我可以