#includestdio.h
int main()
{
int n;
char a,b;
printf("Enter shift amount(1-25):");
scanf_s("%d",n);
getchar();
printf("Enter message to be encrypted:");
while((a=getchar())!='\n')
{
if(a='A' a='Z')
b='A'+(a-'A'+n)%26;
else if(a='a' a='z')
b='a'+(a-'a'+n)%26;
putchar(b);
}
return 0;
}
恩~ 你都给了明文和密钥…不知道你还要什么方法啊?
如果你不知道凯撒,可以去百度一下,我给你简单说一下吧~
英文26个字母(不分大小写)可以由数字01~26来代替(有人也用00~25来代替,不过不常见~)
凯撒全称叫凯撒位移加密法,顾名思义啊~
比如A是01,你用n=4加密之后就是01+4=05,05在字母表里是E,所以A加密之后就是E~
CHINA用n=4加密之后就是GLMRI~ 明白没?
对了,需要说明一下,上面举的例子是字母表向右移动4位,n=4也可以理解为向左移动4位,那么CHINA加密之后就变成YDEJW~ 不过不用担心,一般情况下都是向右移的,当然也不排除某些变态向左移(强烈鄙视这种人!!!)…
恩~ 废话说了好多,给你密文吧~说明一下,我是用01~26和右移的方法加密的~
Glmri Girwvep Vehms erh XZ Yrmzivwmxc~ 完毕~(我加的有点快,不保证全对,你自己检查一下哈~)
再补一句,字母表可以循环用的,比如Z用完了就回到ABC…,这时候A就相当于27~ 明白否?
嘿嘿… 我腹黑一下下~ 如果你想用密码去虐一个人的脑细胞的话,推荐你用00~25和左移的方法,保证他能死至少一半的脑细胞~
嘿嘿嘿嘿……
这个程序,允许输入一串小写英文,如:goodbey,然后将它们变成密码:jrrgehb。
变换规律是:按照英文字母表,明文字母向下第三个,就是密码。
见插图。
char M[100]; //明文、密码的存放空间
char C[100];
int K = 3, i; //K=3, 向下第三个
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); //显示密码
现在解决这个问题最简单的方法就是看能否这个软件的作者和客服联系上,看有没有什么有效的解决办法。
另外建议您以后再给文件和文件夹加密的时候选择专业的文件和文件夹加密软件。
文件夹加密超级大师是一款安全性极高的文件和文件夹加密软件。她功能强大,速度快,效果好。
主要功能有文件加密,文件夹加密、万能锁、数据粉碎等。可满足日常工作和生活中的安全保密需求,您尽可放心使用。
看我的回答您是否满意,如果满意的话,请推荐一下。
#includestdio.h
int main(void)
{
int n,i=0,arr[80]={0};
char ch,s;
printf("Enter shift amount(1-25):");
scanf("%d",n);
printf("Enter message to be encrypted:");
s = getchar();
while(scanf("%c",ch))
{
if(ch =='\n')
break;
if(ch='A' ch='Z')
arr[i++]=(ch-'A'+n)%26+'A';
else
arr[i++]=(ch-'a'+n)%26+'a';
}
printf("Encrypted message:\n%d\n",n);
for(i=0;i80;i++){
printf("%c",arr[i]);
}
printf("\n");
return 0;
}
恺撒密码最简单的那种就是将各个字母做一个简单的移位,复杂一些的恺撒密码2的话,就是对26个字母不是顺序的位移,而是不同的字母有不同的位移。这样的话,你就需要一个26个字母的密钥来给26个字母做加密和解密。