int chartoasc(char c);
int xor(int i);
char asctochar(int a);
int rand_num();
int encrypt(const char *org_pass,char *new_pass);
int decrypt(const char *new_pass,char *org_pass);
int main(int argc,char *argv[])
{
if(argc!=2)
{
printf("参数输入有误!\n");
printf("usage:\nflag=1:加密;flag=2:解密\n");
return -1;
}
int flag = 0;
int len = 0;
int i = 0;
int ret = 0;
char password[20];
char new_pass[50];
char org_pass[50];
int test1 = 0;
int test2 = 0;
char test3 = 0;
char *p = NULL;
bzero(password,sizeof(password));
bzero(new_pass,sizeof(new_pass));
bzero(org_pass,sizeof(org_pass));
flag = atoi(argv[1]);
if(flag == 1)
{
printf("请输入需要加密的密码:");
scanf("%s",password);
ret = encrypt(password,&new_pass);
if(ret)
{
printf("密码加密失败!\n");
return -1;
}
printf("新密码[%s]\n",new_pass);
}
else if(flag ==2)
{
printf("请输入需要解密的密码:");
scanf("%s",password);
ret = decrypt(password,&org_pass);
if(ret)
{
printf("获取原密码失败!\n");
return -1;
}
printf("原密码[%s]\n",org_pass);
}
else
{
printf("加密标志输入如有误!\n");
return -1;
}
return 0;
}
/**将字符转换为ASCII值**/
int chartoasc(char c)
{
int i= 0;
i = c;
return i;
}
/**将ASCII进行异或运算,产生新的ASCII值**/
int xor(int i)
{
int m = 27;
int result = 0;
if(59==i || 100==i)
{
return i;
}
result = i^m;
return result;
}
/**将ASCII值转换为字符**/
char asctochar(int a)
{
char c;
c = a;
return c;
}
/**输入原密码产生新的密码**/
int encrypt(const char *org_pass,char *new_pass)
{
char org_password[50];
char new_password[50];
int len = 0;
int i = 0;
int asc = 0 ;
char ch = 0;
int x = 0;
bzero(org_password,sizeof(org_password));
bzero(new_password,sizeof(new_password));
strcpy(org_password, org_pass);
len = strlen(org_password);
for(i=0 ; i