对字符串进行加密C语言代码,c语言实现对密码(字符串)进行加密,并解密

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值