c语言里的凯撒密码(凯撒密码题目)

2023-03-15 2:17:22 密码用途 思思

#includestdio.h

#includestring.h

int main()

{

int i;int number;

char a[100];

scanf("%s",a);

number=strlen(a);

for(i=0;inumber;i++){

a[i]=a[i]+4;

}

for(i=0;inumber;i++){

printf("%c",a[i]);

return 0;

}

请问一下这道C语言编程题怎么做?

按照题目要求编写的用凯撒密码加密的C语言程序如下

#includestdio.h

int main(){

char s[80];

int offset,i;

fgets(s,80,stdin);

scanf("%d",offset);

for(i=0;s[i]!='\0';i++){

if('A'=s[i] s[i]='Z')

if(offset=0)

  s[i]='A'+(s[i]-'A'+offset)%26;

else

  s[i]='A'+(s[i]-'A'+26+offset%26)%26;

else if('a'=s[i] s[i]='z')

if(offset=0)

  s[i]='a'+(s[i]-'a'+offset)%26;

else

  s[i]='a'+(s[i]-'a'+26+offset%26)%26;

}

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

return 0;

}

数学学霸来(应该是数学问题),求解这是啥玩意。

这应该是个加密算法的题吧??

y=x+k(MOD 26)这个叫做恺撒密码。

凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推X将变成A,Y变成B,Z变成C。由此可见,位数就是凯撒密码加密和解密的密钥。

凯撒密码(移位密码):公式Y=(X+k)(mod 26):X是原码字母在字母表中的位置,Y是码文在字母表中的位置,k是位移量,也就是密钥。

所以,你只要给我k,我就能给你将这段字母解密了。

我宣布,已经破解了这段密码。答案就是 irememberyourloveliness

i remember your loveliness 我记得你的可爱。

上面公式中的k应该是k=7,解密的时候,再拿对应字母减去7.

比如P,P往前7个字母是i, 如果不够减,就加26再减。

求解凯撒密码算法的题目

C的编程思路,其它的语言不会

1,用for循环,实现一维数组a【】,从第一个输入到第六个字母,然后再用for循环把a【】从0到5都减29,赋值到b【】,把数组b以字符变量输出

2,同理,把密文加29,然后以字符变量输出

具体程序不难,我这里没有c编译软件。。。。。