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 < 3i++) {
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
}
#include#include
main()
{
intkey
charch
scanf("%d",&key)
printf("得到对应明文如下:")
while((ch=getchar())!='\r')
(ch+key)>122?putchar(ch-122+33+key):
((ch+key)<33?putchar(ch+122+key):putchar(ch+key))
}
输入输出如下:
请输入密钥:20addse
得到对应明文如下:uxx.y
你先输入一个任意的整数,如20,然后在键盘上输入一段任意的字符如addse
按回车键结束,就会得到结果如:uxx.y
下面是另一组输入输出:
请输入密钥:35asjRYIRER!@#$^^*&
得到对应明文如下:+=4u#luhuDcFG((MI-
具体是如何加密,你应该能看懂,就是用一个三目运算符?:控制。