凯撒密码关键的是密匙,密匙也就是一个数字,比如说密匙是1,那对英文单词book这个单词加密,结果就是相应的每个字母在字母表中的序号减去1;
比如b在英文单词里排第二位,那加密后就是a,o加密后就是n,依此类推,book加密后就是annj,解密时每个字母的顺序号加1,所对应的字母就是密文。
例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推X将变成A,Y变成B,Z变成C。由此可见,位数就是凯撒密码加密和解密的密钥。
例子:
恺撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3):
明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ ;
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC。
使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。需要解密的人则根据事先已知的密钥反过来操作,得到原来的明文。
-凯撒密码
它是一种代换密码。据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码。
凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推X将变成A,Y变成B,Z变成C。由此可见,位数就是凯撒密码加密和解密的密钥。
恩~ 你都给了明文和密钥…不知道你还要什么方法啊?
如果你不知道凯撒,可以去百度一下,我给你简单说一下吧~
英文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和左移的方法,保证他能死至少一半的脑细胞~
嘿嘿嘿嘿……
关于凯撒密码的表述,以下正确的是()。不知如何解决,为此小编给大家收集整理关于凯撒密码的表述,以下正确的是()。解决办法,感兴趣的快来看看吧。
关于凯撒密码的表述,以下正确的是()。
A凯撒密码是一种代替密码
B凯撒密码产生于古希腊时期
C为克服密钥量太小的缺点,在凯撒密码的基础上发展出了单表代替密码
D凯撒密码是一种置换密码
正确答案:ACD
凯撒密码(Caesar cipher)是一种简单的置换密码,它将明文中的每个字母都按照一定的偏移量替换成另一个字母,从而产生密文。它具有以下特点:
凯撒密码是一种代替密码。它将明文中的每个字母都替换成另一个字母,从而隐藏明文的真实内容。
凯撒密码并不是产生于古希腊时期,而是在罗马帝国时期由朱利斯凯撒使用的。
为克服密钥量太小的缺点,在凯撒密码的基础上发展出了单表代替密码。单表代替密码采用一个更大的密钥空间,可以提供更高的安全性。
凯撒密码是一种置换密码。它采用了字母的简单置换,从而将明文转化成密文。
高级表白密码我喜欢你 1、Ive been doing a lot of thinking, and the thing is, I love you 翻译成中文:我思考了很久,结论是,我爱你。 2、百度字符(GB2312):%69%6C%6F%76%65%75 表白解密:把这个网址https://wwwbaiducom/swd=%69%6C%6F%76%65%75复制到浏览器上打开就知道了。 3、128√e980 表白解密:将这个写在黑板上,或者容易擦掉的板子上,然后抹去上面一半,就是“I LOVE YOU”。 4、数字密码: 9 12 15 22 5 21 表白解密:1到26对应字母a到z,简单找出对应字母就可以了,其实情感里的高级“暗语”多数是一些小把戏,懂得人才会去留意,其实对方稍微对你好感就会有察觉。 高级暗语表白密码2 表白方法 1、墙壁、眼睛、膝盖,用英语连起来读就是wall eye knee(是不是神奇的发现是……我爱你)嗯,,,,不是密码,就是一个抖机灵?差不多吧,总之不是密码,也不高智商,我自己就是一个爆蠢无比的人。 2、我用的高级表白密码是“投之以木桃,报之以琼瑶”,然后掏出了礼物。妹子是个文艺女生,她立刻懂了。当然前提是妹子非常熟悉《诗经》。 3、两个男生准备同时向一女生表白,女生开始出难题:“你们俩谁先周游玩世界,谁就先来向我表白。”一男生立马收拾包裹准备出发,另一男生则直接绕女生转了一圈,说出一句流芳百世的情话:“you are my world。”秒杀全场! 4、高考完想和喜欢的女生表白,又怕被拒绝,于是想了个暗戳戳的有点模糊的高级表白密码:fear of losing you再把这个表述(英文)四层加密(摩斯,二进制,凯撒,栅栏),让她大半夜的解密码,又怕她解不出来,就把方式给她提示了,结果她解了两小时解出来了。然后我还骗她说这是表达同窗三年的同学情谊。 后来她也给了我一个密码,两层加密(栅栏,高级凯撒),也告诉了我加密方式。高级凯撒的要点在于猜出是哪几个字母被提前了,所以生推很困难。于是我看了看,八个字母,两个重复的,盲猜I LOVE YOU。再倒着推就推对了,提前的字母是我的姓名缩写嘻嘻。然后我们就这样在一起啦! 密码表白 5、我名字的首字母是XHN,我给她表白时说的是“我名字的首字母是我最想对你说的话”她瞬间就懂了。 6、给她发几个数字:60 80 20,出处是法国有一句话情话:一分钟只有60秒,而我却爱你80秒,每一分钟都多爱你20秒。(当然表白之前可以先引导女生知道这句话) 高级暗语表白密码3 一、表白数字密码暗号大全 15230—我好想你 9420—就是爱你 8013—伴你一生 8006—不理你了 1573—一往情深 0437—你是神经 0456—你是我的 0457—你是我妻 1240—最爱是你 0837—你别生气 1314—一生一世 1372—一厢情愿 1711—一心一意 2037—为你伤心 3013—想你一生 3399—长长久久 3731—真心真意 5260—我暗恋你 5490—我去找你 5406—我是你的 5620—我很爱你 5871—我不介意 5630—我很想你 5670—我要娶你 6120—懒得理你 7089—请你别走 9087—求你别走 7678—吃饱了吗 7998—去走走吧 8074—抱你去死 9958—救救我吧 9213—钟爱一生 5230—我爱上你 5376—我生气了 53406—我想死你了 08056—你不理我啦 70345—请你相信我 51020—我依然爱你 53770—我想气气你 53719—我深情依旧 25184—爱我一辈子 74839—其实不想走 04551—你是我唯一 92013—钟爱你一生 20100—爱你一万年 02746—你恶心死了 04527—你是我爱妻 02825—你爱不爱我 04535—你是否想我 06537—你惹我生气 20475—爱你是幸福 20999—爱你久久久 20609—爱你到永久 25873—爱我到今生 25910—爱我久一点 36012—想念你的爱 32069—想爱你很久 35935—想我就爱我 51095—我要你嫁我 51396—我要睡觉了 51920—我依旧爱你 51930—我依旧想你 52094—我爱你到死 52406—我爱死你了 53770—我想亲亲你 54920—我始终爱你 53880—我想抱抱你 53782—我心情不好 57410—我心属于你 045692—你是我的最爱 564335—无聊时想想哦 0594184—你就是我一辈子 1314920—一生一世就爱你 1392010——生就爱你一个 203099—爱你想你久久 259395—爱我就了解我 2925184—爱就爱我一辈子 3207778—想和你去吹 440295—谢谢你爱过我 4422335—时时刻刻想想我 507680—我一定要追你 二、高级表白密码 58013 我伴你一生 57350 我只在乎你 5760 我要娶你 20475 爱你是幸福 57410 我心属于你 507680 我要追到你 52616 我暗恋你了 045617 你是我的氧气 20100 爱你一万年 20609 爱你到永久 517230 我已经爱上你 507680 我一定要追你 51230 我已爱上你 51930 我依旧想你 5360 我想念你 52616 我暗恋你了 568013 我来伴你一生 73748096 今生今世伴你左右 584521 我发誓我爱你 745731 其实我喜欢你 201314 爱你一生一世 5452830 无时无刻不想你 518720 我一辈子爱你 2030999 爱你想你久久久 1392010 一生就爱你一个 04551 你是我唯一 74521 其实我爱你 77895 紧紧抱着我 20184 爱你一辈子 52406 我爱死你了 53888 我想抱抱你 59420 我就是爱你 02825 你爱不爱我 5260 我暗恋你 53770 我想亲亲你 04535 你是否想我 92013 钟爱你一生 1573 一往情深 147 一世情 3344587 生生世世不变心 3399 长长久久 53217778 我想和你去吹吹风
我觉得创建26个文件实在太冗杂了。其实一个就够了,因为随着你的选择的改变(比如以9为加密条件,所有字母循环后移9位),目标文件里面的内容就自动更新了。
当然你也可以使用函数 int create(char filename , int mode) 在执行框里手动输入像 e:\\originaltxt 这样的地址字符,但你想象一下,这是不是很麻烦?
在实际加密中,可使用随机函数 rand()产生循环后移位数,而且完全可以不限制在26位,扩展ASCII码可以产生成千上万的字符,将文件加密到那些几乎无规律,难以识别的字符上,安全性就提高了许多。当然还有什么多轮加密之类的。可以自己慢慢摸索,挺有趣的。祝你好运!
修改如下(已成功执行):
#include<stdioh>
#include<stdlibh>
char encrypt(char ch,int n)/加密函数,把字符向右循环移位n/
{
while(ch>='A'&&ch<='Z')
{
return ('A'+(ch-'A'+n)%26);
}
while(ch>='a'&&ch<='z')
{
return ('a'+(ch-'a'+n)%26);
}
return ch;
}
void main()
{
FILE in,out;
char ch1,ch2;
int i;
printf("Please input the number(1~26) you want to use for encrypt:");
scanf("%d",&i);
if((in=fopen("e:\\originaltxt","r"))==NULL) /文件名根据自己建立的位置修改,
我建在e盘的根目录下
{
printf("Can not open this file!\n");
exit(0);
}
if((out=fopen("e:\\encrypttxt","w"))==NULL) //同上
{
printf("Can not open this file!\n");
exit(0);
}
while(!feof(in)){
if((ch1=fgetc(in))!=EOF)
ch2=encrypt(ch1,i);
fputc(ch2,out);
}
printf("Encrypt is over!\n");
fclose(in);
fclose(out);
}
欢迎分享,转载请注明来源:表白网
评论列表(0条)