#include <stdio.h>
#define MAX 100
#define YIWEI 3
int main()
{
char C[MAX];
char M[MAX];
int K=YIWEI,i;
{
//加密
printf("请输入明文M(不可输入空白串)\n");
gets(M);
for(i=0; M[i]!='\0'; i++)
C[i]=(M[i]-'a'+K)%26+'a';
C[i]='\0';
printf("加密后的密文是:\n%s\n",C);
}
{
//解密
for(i=0; C[i]!='\0'; i++)
{
M[i]=(C[i]-'a'-K)%26+'a';
/*C[i] = (M[i] - 'a' + K) % 26 + 'a' 这句代码的意思是将字符串M中第i个字符转换为字母表中的对应字符,
并且根据密钥K进行偏移。具体来说,它执行以下步骤:将M[i]的ASCII码值减去字母'a'的ASCII码值,
以便将小写字母转换为0到25之间的数字。将结果与密钥K相加,以进行偏移。将结果对26取模,以确保结果在0到25之间。
将结果加上字母'a'的ASCII码值,以将数字转换回对应的小写字母。这段代码通常用于实现凯撒密码,
其中K是密钥,用于对字符串进行加密或解密。通过对每个字符进行类似的转换,可以将整个字符串进行加密或解密操作*/
}
M[i]='\0';
printf("解密后的明文是:\n%s\n",M);
return 0;
}
}
C语言实现加密解密功能
最新推荐文章于 2024-08-16 23:23:07 发布
文章详细描述了如何使用C语言实现简单的凯撒密码加密和解密过程,通过字符偏移和ASCII码操作,用户输入的明文和密钥K进行转换。
摘要由CSDN通过智能技术生成