c语言实现密码加密

:完成加密算法,实现账号或密码的加密
算法描述
1、6位密码前后倒置;
2、每位ASII码减去15;
3、末尾拆入一位校验和,校验和为6位密码直接求和

unsigned char* encrypt(unsigned char* psw, int enc) {
int sum = 0, i;
if (enc) {
for (i = 0; i < 6; i++) {
psw[i] -= 15;
sum += psw[i];
}
psw[6] = (unsigned char) sum;
psw[7] = 0;
    }
else {
for (i = 0; i < 6; i++) {
sum += psw[i];
psw[i] += 15;
}
if ((unsigned char)sum != psw[6]) {
printf("Bad password\n");
psw[0] = 0;
return psw;
}
else {
psw[6] = 0;
}
}
for (i = 0; i < 3;i++) {
unsigned char t = psw[i];
psw[i] = psw[5-i];
psw[5-i] = t;
}
return psw;
}

int main()
{
unsigned char psw[128];
scanf("%s", psw);
printf("encode to:%s\n", encrypt(psw, 1));
printf("decode to:%s\n", encrypt(psw, 0));
return 0;
}

温馨提示:答案为网友推荐,仅供参考
相似回答