gpt4 book ai didi

Caesar Cipher C 程序未正确加密

转载 作者:太空宇宙 更新时间:2023-11-04 08:43:42 25 4
gpt4 key购买 nike

我用 C 为我的类(class)编写了一个凯撒密码程序,但它似乎没有正确加密。该程序从句子“THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG”中获取输入并使用从键盘输入中获取 enckey 的 Caesar Cipher 方法对其进行加密。当它加密的时候,它没有正确地做,它把它解密成废话。我查看了它,但无法弄清楚为什么它没有以正确的方式加密句子。

代码如下:

#include <stdio.h>
#include <stdlib.h>


int Caesar_encrypt(char *p, char *s, int enckey);
int Caesar_decrypt(char *p, char *s, int enckey);

int main(void){
char A[]="THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG";
char B[50], /* stores encrypted output string */
C[50]; /* stores decrypted output using string B as source */
int enckey,
statuse, statusd; /* they store return values from the functions */

printf("Plaintext for encryption is : %s \n", A);

printf("Input numerical key for Caesar's cypher : ");
scanf("%d",&enckey);
putchar('\n');
printf("You entered encryption key %d \n", enckey);

/* encrypt by Caesar's cypher */
statuse= Caesar_encrypt( A, B, enckey);

printf("Ciphertext is : %s \n", B);

/* decrypt by Caesar's cypher */
statusd = Caesar_decrypt( B, C, enckey);
printf("Decrypted text is: %s \n", C);


exit (0);
}

int Caesar_encrypt(char *p, char *s, int enckey){
*s = ((*p + enckey)%26) + 65 ;
return 0;
}

int Caesar_decrypt(char *p, char *s, int enckey){
*s = ((*p - enckey)%26) + 65 ;
return 0;
}

如果你能在任何方面帮助我,那就太好了

感谢您的宝贵时间。

最佳答案

您只对字符串的第一个字符进行加密/解密。您必须遍历字符串的所有字符。

并且空格字符的加密/解密有问题。我将此作为练习留给您。

关于Caesar Cipher C 程序未正确加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22519572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com