4194418141634192622374
大家注意一下这组数字 最大的是数字的范围是1-9
手机上一共有10个数字按键 其中0和1不对应任何字母
所以不存在0 而为什么会有1呢?
大家在仔细看一下,如果将数字从左到右编序号,12345直到22
有没有发现奇数编号对应的数字没有1
所以奇数编号的数字应该是对应有字母的手机按键
而所有偶数编号对应的数字都是1234
为什么只有1234?大家再看看手机,所有有字母的按键 最多只有4个字母,所以偶数编号的字母对应的是按键上的第几个字母。
按照这个方法我们来看下这串数字 xx94xxxxxxx74
这是仅有的两个偶数编号的4 相对应9和7
你们再看看手机 只有按键9和7才对应4个字母 其它的都只对应3个
--------------------------------------------------------------------------------
4
我重新整合了这个解密步骤。
如下。
38楼给我的提示。还是让我想到了手机。
你们看解码出来分组后的数字分别是,
41 94 41 81 41 63 41 92 62 23 74
并且每个组合个位数都不超过4。
特别是除了十位数是7和9这两个数字后面有4以外其他的都没有4。
看图。
手机的键盘上7和9的字母也是4个的,其他的都不超过4个字母。
那么,按照上面的组合解码可得。
G Z G T G O G X N C S
解码后我们发现每一组数字都能解释出来。
目前我只能解码到这里的。
虽然很不通顺,但我相信这里应该是个突破点。
93楼的键盘代入也给了我很大的提示。
包括楼主的“她说途中有一个步骤是"替代密码"而密码表则是我们人类每天都可能用到的东西”
那么很可能就是电脑键盘。
因为QWE的格式是被世人所认可的,也就有可能成为密码的码表。
码表 QWE=ABC依次类推。
那么解码G Z G T G O G X N C S
就是G=O Z=T G=O T=E G=O O=I G=O X=U N=Y C=V S=L
翻译过来就是 O T O E O I O U Y V L
其实到这里就已经大概知道答案是什么了。
按照逻辑来整理,只要你重组这些字母的时候你就看到了。
虽然重组有很多种例如,LV IOU ET OOO
可是这些没有语言性质。因为楼主说过最终答案是英语。
所以唯一一个符合逻辑的答案应该是I LOVE YOU TOO.
可是我还不确定。
因为这里我才解了第3层就已经看出答案了。
所以我决定用O T O E O I O U Y V L
进行再次解码。
我用了很多种解码方法。
凯撒,乘法等等。。
最后我发现了只有栅栏才能读得通。
分成两排
O T O E O I
O U Y V L
重组后,OOTUOYEVOLI。
然后倒序,ILOVEYOUTOO.
I LOVE YOU TOO.就自然而然的出来了。
最后我才肯定密码就是I LOVE YOU TOO.
最后的最后,我敢肯定楼主有一个非触摸屏的手机,并且键盘一定是标准格式的。
而且应该有一台笔记本或者你经常接触电脑。
另外楼主和楼主的女人关系应该是认识很久的那种,而不是一见钟情。
而且楼主告白的时候应该有用到I LOVE YOU 或者我爱你之类的字眼。
对不对阿?
呼.
好累啊..
祝楼主幸福咯.
因为她是爱你的!!
恩~ 你都给了明文和密钥…不知道你还要什么方法啊?
如果你不知道凯撒,可以去百度一下,我给你简单说一下吧~
英文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和左移的方法,保证他能死至少一半的脑细胞~
嘿嘿嘿嘿……
它是一种代换密码。据说凯撒是率先使用加密函的古代将领之一,因此这种加密方法被称为凯撒密码。
在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。这个加密方法是以罗马共和时期恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。
(以上摘自百度百科,更多详情请自行学习了解)
然后这些数字,分别指代英文26个字母,比如4指代d,16指代p等等。以此类推,则除了“-1”以外的其他数字转换成字母依次是:dpohsbuvmbujpo
-1指的是偏移量为1,即明文中的所有字母分别向右偏移一位继而得到上述密文。因此若想得到明文,须将dpoh...的所有字母分别向左偏移一位,即d变成c,p变成o等等。以此类推,明文即是:
congratulation
祝贺
至于那个“-1”,个人猜想还有一种理解,就是指4 16……那些数字分别减去1。这样理解也能得出同一个答案,只是我不确定那个“-”究竟是减号还是普通的短破折号。
几天前一次和朋友聊天谈到了加密聊天,于是想到了凯撒密码,随之就是想用自己的一点烂技术写点好玩的:
下面是成品说明
本程序可以将用户输入的内容通过 非固定的凯撒密码字典 进行加/解密,是一种好用加密的加密聊天方式。
Caesar cipher,发明者Caesar(凯撒),罗马人。
根据苏维托尼乌斯的记载,恺撒曾用此方法对重要的军事信息进行加密:
如果需要保密,信中便用暗号,也即是改变字母顺序,使局外人无法组成一个单词。如果想要读懂和理解它们的意思,得用第4个字母置换第一个字母,即以D代A,余此类推。
同样,奥古斯都也使用过类似方式,只不过他是把字母向右移动一位,而且末尾不折回。每当他用密语写作时,他都用B代表A,C代表B,其余的字母也依同样的规则;他用A代表Z。
另外,有证据表明,恺撒曾经使用过更为复杂的密码系统:文法学家普罗布斯曾经写过一份独具创新的手稿,研究恺撒书信中包含有秘密信息的字母。
已经无法弄清恺撒密码在当时有多大的效果,但是有理由相信它是安全的。因为恺撒大部分敌人都是目不识丁的,而其余的则可能将这些消息当作是某个未知的外语。即使有某个敌人获取了恺撒的加密信息,根据现有的记载,当时也没有任何技术能够解决这一最基本、最简单的替换密码。现存最早的破解方法记载在公元9世纪阿拉伯的阿尔·肯迪的有关发现频率分析的著作中。
这是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。这个加密方法是以罗马共和时期凯撒的名字命名的,当年凯撒曾用此方法与其将军们进行联系。
进入程序后,会有像下面这样的提示:
随便输入一段英文(此程序仅支持英文和数字,原因看原理):例如 Fuck you
然后回车:
我们在这输入的是可看的原文,所以我们要加密,输入1,回车:
我们以位移+3(这是当年的默认值,输入其他值可以为负,但是必须加负号,正数的正号加不加无所谓)为例,输入并回车:
程序里面用了循环,所以输出完后会自动进行下一次,这适合正在加密聊天的折腾者。
同样,我们把加密好的文本复制完后重新输入,选择2进行反加密(解密),位移了多少仍然填3:
这样解密就成功了,是不是真的很适合爱折腾的你?赶紧发给你的朋友,约定一个固定的位移数(加密密钥)进行愉快的无限制聊天吧!
存放主程序及图标文件
英文版主程序(在en-ww文件夹内)
程序图标,透明底的
中文版主程序
日志文件,主要通过自编模块 keeplog 生成,内容为“日期(Y/M/D)+时间(h/m/s)+加密密钥+输入/输出内容+分割线”
凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推X将变成A,Y变成B,Z变成C。由此可见,位数就是凯撒密码加密和解密的密钥。我对“怎么用凯撒密码加密一句中文”产生了疑问,实际上解决方法可以有很多种,例如用数组中不断地“大、风、方……”这些词的简单位移,事实上经过搜索,我选择了使用的变换来完成。即,可以用汉字对应的字符码来进行变换操作,这样出来的还是汉字。比如汉字“一”是0x4e00,凯撒移位为1的话0x4e00+1=0x4e01,对应的汉字是“丁”,如果移位为三,就是0x4e03,对应汉字是“七”。将汉字范围内的整型转换为16进制字符串作为后缀,前面加入\u,形成对应的unicode值。这段代码并不复杂,遇到的问题在于:当我在main函数调用时,注释掉的该行(如下)不能够实现我把转义字符\去掉,即最后输出的是\u593a这种形式,而非unicode值对应的“太”。只要把得到的报文中的“\”换成“\”,我想就能正常地将Unicode输出成中文了,首先想到的是使用字符串的方法。使用(“\\“,“\“),但是发现输出结果没有任何变化。 解决方法是:查了下API文档,方法的定义是:public String replaceAll( String regex,String replacement) 。