首页 > 试题广场 >

互联网的快速发展虽然便利了我们的日常生活,但是它也带来了诸多

[单选题]
互联网的快速发展虽然便利了我们的日常生活,但是它也带来了诸多问题,比如:像账号密码这样的敏感信息泄露问题,因此对在互联网上进行传输的数据进行加解密是很有必要的。下面函数的功能对字符串明文进行加密处理,那么加密后的密文结果是()
#include<stdio.h>

#include<string.h>

#define N 1024

char* encrypt(char* str) {

        int i, len = strlen(str);

        for (i = 0; i < len; i++) {

               str[i] = (str[i] + i) % 128;

        }

        return str;

}
int main() {

        char s[N] = "I am good";

        printf("%s\n", encrypt(s));

        return 0;

}
  • I!cp$luv1
  • I am good

  • doog ma I
  • 1vul$pc!I

这个加密算法是对字符串的每个字符的ASCII值偏移i位,字符串的第一位是I,偏移0位(此时i=0)后仍为I,字符串第二位为空格,偏移1位(此时i=1)后为!,依此类推.......
发表于 2022-01-17 11:34:41 回复(3)
a的ASCII码值为97,A的码值为65
发表于 2022-08-08 21:04:41 回复(0)
为什么要模128啊
发表于 2022-04-28 21:43:57 回复(2)
sizeof计算的是已经分配的字节空间数目(若实现规定其长度为N,则sizeof所得数值将一直是N,不会随着现有字符数发生变化),包括"\n"和空格,strlen计算的是字符长度,包括空格不包括"\n",双引号括起来的是字符串,后面会自动加"\n"做分割,单引号括起来的是字符。
发表于 2022-03-08 10:48:13 回复(0)
还是不能太理解,到底是怎么加着呢然后取余,哪位大佬可以写下过程,求求了
发表于 2023-11-01 10:49:58 回复(0)
人肉对应是吧
发表于 2023-08-10 21:10:48 回复(0)