前面几个逻辑分析,数字推理啥的,后面是几个大题,我申请的是系统工程师
第一个简单,第二个是写出加密解密函数,第三个简单主要靠linux操作
给出第二个程序,做的很糙
#include <stdio.h>
#include <string.h>
#include<ctype.h>
static char Cryptograph[128] = "0"; //加密后的字符串
typedef struct {
int userId;
char string[20];
char data[20];
char platform;
}DianPing;
int encode()
{
FILE *fd;
int i,count;
//将用户ID,标识串,时间戳,平台信息放入一个字符串
//struct DianPingInfo Info;
char Text[128] = "0";
//char Cryptograph[128] = "0"; //加密后的字符串
int userId = 123456789;
char string[20] = "abcdc";
char data[20] = "2014/9/20";
char platform[20] = "web";
strcpy(Text,(char *)&userId);
strcpy(Text+sizeof(userId),string);
strcpy(Text+sizeof(userId)+sizeof(string), data);
strcpy(Text + sizeof(userId)+sizeof(string)+sizeof(data), platform);
//count=strlen(Text);
//printf("strlen(Text) :%d \n",count);
fd = fopen("Text","w+");
if(fd)
{
fwrite(Text,128,1,fd);
fclose(fd);
}
//printf("请输入要加密的明文:\n");
count=sizeof(Text); //128
for(i=0;i<count;i++)
{
Cryptograph[i]=Text[i] + i + 1; //加密规则
}
fd = fopen("Cryptograph","w+");
if(fd)
{
fwrite(Cryptograph,128,1,fd);
fclose(fd);
}
return 0;
}
char decode(char *Cryptograph)
{
char Text[128];
int i;
int count=sizeof(Cryptograph);
printf("length = %d\n",count);
for(i=0;i<count;i++)
{
Text[i]=Cryptograph[i]- i -1; //加密规则
}
int userId ;
char string[20] ;
char data[20] ;
char platform[20] ;
strncpy((char *)&userId, Text, sizeof(userId));
strncpy(string, Text+sizeof(userId), sizeof(string));
strncpy(data, Text+sizeof(userId)+sizeof(string), sizeof(data));
strncpy(platform, Text + sizeof(userId)+sizeof(string)+sizeof(data), sizeof(platform));
printf("userId = %d \n", userId);
printf("string = %s \n", string);
printf("data = %s \n", data);
printf("platform = %s \n", platform);
}
int main()
{
encode(); //加密
decode(Cryptograph); //解密
return 0;
}