C语言实现加密解密功能

文章详细描述了如何使用C语言实现简单的凯撒密码加密和解密过程,通过字符偏移和ASCII码操作,用户输入的明文和密钥K进行转换。
摘要由CSDN通过智能技术生成

#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;
        }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值