A Caesar Encryptor ———— 凯撒加密算法的C 语言实现
A Caesar Encryptor ———— 凯撒加密算法的C 语言实现
凯撒加密(Caesar Encryption)是一个最简单的加密算法,利用移位,能够将英文字母替换成另一个位置上的字母,从而加密。
优点是实现起来非常简单,缺点是容易被破解。
下面用C语言实现一个,用户输入明文(plain text)和移位数,终端输出密文(cipher)的凯撒加密器。
原理
参考 凯撒加密原理--知乎
代码实现
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char** argv)
{
if(argc != 3)
{
printf("参数: [明文] [移位数]\n");
}
//初始化
int step = atoi(argv[2]);//移位数
const char* plain_text = argv[1];//指向明文argv[1]
int len = strlen(plain_text)+1;//明文长度,包括最后的\0
char * cipher = (char*)malloc(len*sizeof(char));//密文
int i=0;
step %= 26;
/*
printf("plain text = %s \n", plain_text);
printf("step = %d \n", step);
printf("len = %d \n", len);
*/
//遍历字母,移位变换
/*
while(i<len-1)
{
//printf("plain_text[%d]=%c\n",i,plain_text[i]);
cipher[i] = (plain_text[i]%'a'+step)%26+'a';
i++;
}
*/
for(i=0;i<len-1;i++)
{
//printf("plain_text[%d]=%c\n",i,plain_text[i]);
cipher[i] = (plain_text[i]%'a'+step)%26+'a';
}
cipher[len-1]=0;
printf("cipher is: %s \n", cipher);
return 0;
}
/*
*注意,目前只能处理英文的小写,甚至无法处理普通的数字、符号
而且只能做简单的加密处理。
* */
输入 ./a.out helloworld 4
输出 cipher is: lippsasvph
-- 2022年 07月 13日 星期三 14:15:57 CST
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗