1、密码破译比较有名的密码及一些加密方式1.栅栏密码2.猪圈密码3.凯撒移位4.摩斯电码5.四方密码6.希尔密码7. ROT13(回转十三位)8.键盘密码9.维吉尼亚密码10.单表替代密码(频率,bingo的破译密码)常用trick1.九键拼音(数字 字母)2.电脑与手机九键数字的转换(数字 数字)3.字母与字母序的字母数字转换(字母 数字)4.元素周期表与序号的转换(字母 数字)1.栅栏密码How to use 5*6 = 15324699怎么用呢?首先后面的6个数是从1到6,我考虑是解读的顺序。那么前面可能就意味着是把字符每6个进行分组了。那么把这30个字符分成5组,每组按照153246的顺序
2、读,结果是:MOUGIL / YTHWNO / LHAIGV / OISTYE / VNNHO.MIUOGL / YNHTWO / LGAHIV / OYSITE / VHNNH.既然一共是30个字符,确实能够分成5组,栅栏密码。也就是说,5个一组横着写,然后纵向阅读,可能就有意义了:M O U G I LY T H W N OL H A I G VO I S T Y EV N N H O .再考虑到153246可能是按照列阅读的顺序,那么,我们编个号,如下:|1|2|3|4|5|6|M|O|U|G|I|L|Y|T|H|W|N|O|L|H|A|I|G|V|O|I|S|T|Y|E|V|N|N|H
3、|O|.|然后,我们把这个表竖着看,按照1-5-3-2-4-6的顺序排列一下,如下:|1|5|3|2|4|6|M|I|U|O|G|L|Y|N|H|T|W|O|L|G|A|H|I|V|O|Y|S|I|T|E|V|O|N|N|H|.|那么我们调整一下列的顺序,并且把竖排变成横排,变成了:MYLOVINGYOUHASNOTHINGWITHLOVE.在考虑到空格的位置,解密如下:MO UGILYT HWN OLH AIGVOIS TYEV NNHO.MY LOVING YOU HAS NOTHING WITH LOVE.也就是:My loving you has nothing with love.
4、解密成功。例:密码:ID LIKE TO LIVE WITH YOUIN A SMALL TOWN, WHERE THERE ARE ETERNAL TWILIGHTS AND ETERNAL BELLS.明文:LK IDIL VT IOETYWHI ENS UA I OLOAT LMWE N H,WHRE ETRE TAE REATRLN EIHIGLWNE SDA TNLEART L.ESL B KEY:6*13=635142回应:HVO AUYE MBNE EL FOYN YR.TEU U KEY:6*4=6351422.猪圈密码Key:X marks the spot的加密结果将呈现如
5、下:3.凯撒移位快速破译的网站:可参考的代码A public class ShiftCode private static String Ciphertext = VRPHWLPHV L ZDQW WR FKDW ZLWK BRX, EXW L KDYH QR UHDVRQ WR FKDW ZLWK BRX; private static String getString(int i) return String.valueOf(char) (a + i); private static int getInt(char i) return (i - a); public static void
6、 shift(String ciphertext, int s) String lowerCiphertext = ciphertext.toLowerCase(); for (int i=0; i z | lowerCiphertext.charAt(i) a) System.out.print(lowerCiphertext.charAt(i); else int temp = getInt(lowerCiphertext.charAt(i); temp = (temp + s) % 26; System.out.print(getString(temp); System.out.prin
7、tln(); public static void main(String args) for (int i=0; i26; i+) shift(Ciphertext, i); 可参考的代码B/* * 程序名称:凯撒密码加密解密程序 * 程序功能:输出凯撒密码所有偏移结果,可应用于解密和加密 * 程序思路:遍历 char 组元素判断 ASCII 编码是否在英文字母范围内,然后偏移。 * author YeungKc * version 1.0 */class CaesarCipher public static void caesarCipherShift(String ciphertext)
8、 System.out.println(密 文:t + ciphertext + ntt开t始t输t出t明t文); char ciphertextArray = ciphertext.toCharArray();/ String to char / array for (int i = 1; i 26; i+) / 循环次数 System.out.print(第 + i + 次:t); for (char plainText : ciphertextArray) / 开始遍历 plainText = determine(plainText, A, Z, i);/ A Z 判断区 plainTe
9、xt = determine(plainText, a, z, i);/ a z 判断区 System.out.print(plainText);/ 输出明文结果结束遍历 System.out.println();/ 循环换行 / 判定函数 private static char determine(char plainText, char a, char z, int i) if (a = plainText & plainText z ? plainText + i - 26 : plainText + i);/ 判定偏移后是否会超界并修正 return plainText; public
10、 static void main(String args) String ciphertext = Uibol zpv.;/ 密文 caesarCipherShift(ciphertext);/ 执行凯撒密码偏移 4.摩斯电码Key:5.四方密码6.希尔密码【相关知识、概述】名称:Hill Cipher注1中译名:希尔密码发明者:希尔注2注1网上也有Hill Password的说法,但是应该是中式英语的误传。注2莱斯特S希尔(Lester S. Hill,18911961),美国数学家、教育家。1911年于哥伦比亚大学读完学士学位,1926年在耶鲁大学读完博士学位,于1926年发明希尔密码。
11、【加密方法】由于这种密码涉及一点专业知识,所以我们尽量绕开复杂的部分(其实是我自己也没弄明白),直接讲如何加密。就我理解的正常的加密方法是:1、先数出来需要加密的文字有多少个字母,我们假设字母长度为n;2、然后随机选择一串字母长度为n的平方的字母串;3、将原文和密钥的字母替换为数字:A=0, B=1, C=2Z=25(这里值得注意的是替换的数字要从0开始);4、将原文的矩阵与密钥形成的n*n矩阵相乘;5、将得出的结果除以26,得出的余数就是我们要求的密文。解密的话只要通过密钥逆运算回去就可以了(由于线性代数微难,具体算法请自行研究)听起来很复杂吧我们看到第4步的计算量相当大,如果原文有5个字母
12、,用手算的话要算25个,如果原文有10个字母,就要算1010=100次之多的四则运算了如果用编程来实现的话还算简单,可是对于我们手算的来说工作量太大了【变种加密】为此我们需求一种易于操作的变种方法。例如我们加密这样一句话:Mr.Hill is climbing a hill.(希尔先生爬小山)这一小短句有21个字母,用常规的方法的话,我们需要2121,也就是441个字长的密钥这显然是手算的噩梦这时我们可以利用希尔密码求余的思想建立一种简易的加密方法。我们先选择任意的一个整数(不能与26有倍数关系,0、1、2、13等都不可以),例如此处我们选择数字5。我们先做基本的整理,此时由于不做矩阵的运算了
13、,我们就没有必要从0开始了。原文:mrhillisclimbingahill(我习惯把原文统一为小写,把密文统一为大写,这样比较容易区分)密钥:5原文转数字:13 18 8 9 12 12 9 19 3 12 9 13 2 9 14 7 1 8 9 12 12数字乘以密钥求余:13 12 14 19 08 08 19 17 15 08 19 13 10 19 18 09 05 14 19 08 08求得密文:MLNSHHSQOHSMJSRIENSHH利用这种方法加密的好处是利用密钥数字将原有的序列发散出去,利用求余收敛,但是究其根本还是替换密码。解密的时候,已知密钥是5,密文为:MLNSHHS
14、QOHSMJSRIENSHH先将密文转换为数字:13 12 14 19 08 08 19 17 15 08 19 13 10 19 18 09 05 14 19 08 08然后把其中所有不能被5整除的数都加上26,看能否被5整除,不能的话继续加26,直到能被5整除为止:65 90 40 45 60 60 45 95 15 60 45 65 10 45 70 35 05 40 45 60 60所有数除以5,得出来的就是原文的字母表数字。至于破解这种密码的方法,可以简单的将之等同于单表替换密码来解,也可以穷举密钥来解,在此就不举例了。【扩展阅读】WJ百科关于希尔密码的讲解(密码吧的同志们,你们懂的
15、)iuuq:/fo.xjljqfejb.psh/xjlj/Ijmm_djqifs7.ROT13简单的移位密码套用ROT13到一段文字上仅仅只需要检查字元字母顺序并取代它在13位之后的对应字母,有需要超过时则重新绕回26英文字母开头即可。A换成N、B换成O、依此类推到M换成Z,然后序列反转:N换成A、O换成B、最后Z换成M。只有这些出现在英文字母里头的字元受影响;数字、符号、空白字元以及所有其他字元都不变。因为只有在英文字母表里头只有26个,并且26=213,ROT13函数是它自己的逆反:对任何字元x:ROT13(ROT13(x)=ROT26(x)=x。换句话说,两个连续的ROT13应用函式会回
16、复原始文字(在数学上,这有时称之为对合(involution);在密码学上,这叫做对等加密(reciprocalcipher)。转换可以利用查找表完成,如下例所示:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzNOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm例如,下面的英文笑话,精华句为ROT13所隐匿:How can you tell an extrovert from an introvert at NSA?Va gur ryringbef, gur rkgebireg ybb
17、xf ng gur BGURE thlf fubrf.透过ROT13表格转换整片文字,该笑话的解答揭露如下:Ubj pna lbh gryy na rkgebireg sebz navagebireg ng AFN? In the elevators,the extrovert looks at the OTHER guys shoes.第二次ROT13函数将转回原始文字。8.键盘密码【相关知识、概述】名称:键盘密码密码背景:凡是利用键盘的特性而制作的密码,我们都可以称之为键盘密码。注1既然是利用键盘加密的方法,肯定是有了键盘之后才出现的产物,可见其历史并不久远。常见的分类有计算机的键盘和手机
18、的键盘两种,而这两种又根据具体的方法可以衍生出层出不穷的加密方法。由于键盘在生活中十分常用,所以使用这种形式加密的频率十分之高。天使贴的其中两层都是用到了键盘密码哦学好这种密码的重要性可见一斑。注1一些诸如利用五笔、智能ABC的加密形式,我们称之为输入法密码,不归于键盘密码一列。【加密方法】由于键盘密码的种类繁多,我们分开电脑的键盘和手机的键盘两种分开介绍。电脑键盘先让我们看看我们天天都会见到的键盘吧(这是偶清洗键盘时照的 ):这算是一个比较标准的键盘了,我们主要关注的地方是大键盘区的字母和数字键,以及右边小键盘区的数字键。最常用的电脑键盘加密方法是这样的:大键盘区方法一我们注意到大键盘区所有
19、的字母上面都有其对应的数字,这个位置几乎在所有的键盘都是相同的。所以我们可以利用这一点应用单表替换的方法进行加密注2:1 2 3 4 5 6 7 8 9 0Q W E R T Y U I O PA S D F G H J K LZ X C V B N M我们根据上表可以得出,Q是1下面的第一个,A是1下面的第二个以此类推,每一个字母都会有其对应的数字:A 12B 53C 33D 32E 31F 42G 52H 62I 81J 72K 82L 92M 73N 63O 91P 01Q 11R 41S 22T 51U 71V 43W 21X 23Y 61Z 13第一个数字代表横向(X坐标)的位置,第
20、二个数字代表纵向(Y坐标)的位置。例如我们加密这样一句话:nice to meet you对应刚才的字母表,我们可以轻松地得到密文:63813331 5191 73313151 619171而一旦我们知道了加密的方法后,我们也可以轻松的反解出原文。有了这种加密方法,我们可以拥有相当多的变种加密方法:例如(每一竖列是一种密码表):A:11,!,!2,QQB:555,%,%3,C:333,#,#3,D:33,#,#2,EEE:3,#,#1,EF:44,$,$2,RRG:55,%,%2,TTH:66,2,YYI:8,*,*1,IJ:77,&,&2,UUK:88,*,*2,IIL:99,(,(2,OO
21、M:777,&,&3,UUUN:666,3,YYYO:9,(,(1,OP:0,),)1,PQ:1,!,!1,QR:4,$,$1,RS:22,2,WWT:55,%,%2,TU:7,&,&1,UV:444,$,$3,RRRW:2,1,WX:222,3,WY:6,1,YZ:111,!3,QQQ第一列是将前文提到的Y坐标用重复次数表现,第二列是将数字替换为键盘上对应的符号,第三列则是将前文的X坐标数字替换为符号,第四列则是用的第一行的第一个字母代替数字。值得注意的是,当替换的字长不等时(如第1、2、4列),最好用分隔符分割开每一个字母,或者用其他符号补位,这样做的好处是不会造成合法的接受人的困扰(即因
22、分隔符位置的不同造成密码多解)。这样的加密方法看起来很简单,但是相对应的,再加密的空间也很大。举个简单的例子,我们可以把X、Y坐标的顺序颠倒一下,用第一个数字表示Y坐标,第二个顺序表示X坐标:A 21,B 35,C 33,D 23,E 13,F 24,G 25,H 26,I 18,J 27,K 28,L 29,M 37,N 36,O 19,P 10,Q 11,R 14,S 22,T 15,U 17,V 34,W 12,X 32,Y 16,Z 31我们还可以把Y坐标的顺序颠倒一下(用4减),即:A 12 B 51 C 31 D 32 E 33 F 42 G 52 H 62 I 83 J 72 K
23、 82 L 92 M 71 N 61 O 93 P 03 Q 13 R 43 S 22 T 53 U 73 V 41 W 23 X 21 Y 63 Z 11我们甚至还可以对坐标进行一下运算,更改一下坐标的原点位置注3等等,简而言之,键盘密码的灵活性很强,大家可以用键盘密码在和朋友聊天的时候折磨一下对方注2单表替换,即用新的字母表替换标准的字母表。替换的文字可以是字母、符号、汉字,甚至可以是一句话,或者一幅图片。许多经典的加密方法都是由此方法衍生的。注3由于键盘中数字的排列“0”在“9”的后面,所以说是坐标其实并不准确,只是为了便于理解。实际加密时,可以打乱键盘坐标的顺序。方法二这种方法与刚才的
24、方法很类似,只是没有用数字那一行,而是利用了字母与字母之间的位置关系。例如,我们看到字母Q在字母A的上面,而字母A则在字母Z的上面,所以我们可以利用这种关系加密,用Q替换A,用A替换Z,用Z替换Q,其他列以此类推:注4A Q,B G,C D,D E,E C,F R,G T,H Y,I K,J U,K I,L O,M J,N H,O L,P P,Q Z,R V,S W,T B,U M,V F,W X,X S,Y N,Z Q同样的,我们可以衍生出许许多多不同的方法,诸如:横向的替换、多字母的替换至于更为有趣的加密方法还有待大家来探索注4在加密字母I、O、P时,可以用文中所写的用字母来替换,也可以用
25、符号来替换,如用“,”来替换字母“I”,密码的加密方法很灵活,大家不必太过拘泥于我所讲的。小键盘区小键盘的加密方法比较有趣,其应用于手机键盘也同样适用,简单说是一种象形的替换方式。例如我们加密字母A的序列是1478963456,其实际上就是在小键盘上利用数字在写字,这种加密十分有趣,但是缺点也很明显:只能加密较短的文字,如果加密的文字量较大,则加密后的文字量将十分庞大。由于究竟怎样画最像,笔画的顺序如何见仁见智,我这里提供的替换表仅供参考:A 1478963456B 74178965456321C 9874123D 7417896321E 789741456123F 741789456G 98
26、74123563H 741456963I 852J 7898521K 741954453L 74123M 1475963N 1475369O 78963214P 741789654Q 7412698753R 741789654453S 987456321T 789852U 7412369V 74269W 741585369X 753951Y 75952Z 7895123手机键盘手机我们每天都会用到,可以说手机这个东西我们再熟悉不过了,其键盘加密的原理和电脑键盘加密的原理类似,同样是运用了单表替换的思想。我们先看看手机键盘长什么样子吧一般传统的手机键盘都长这个样子= =(懒得拍照了)1.2ABC
27、.3DEF4GHI.5JKL.6MNO7PQRS.8TUV.9WXYZ加密的时候方法类似前文,例如加密:plants vs zombie,加密后的文字是:715321628174 8374 946361214332更多的加密方法请参考【扩展阅读】【解密方法】从繁多的加密方法我们可以看出,要想破解键盘密码,熟知各种的加密方法的特征是关键,唯有这样才能比较快的判断出加密形式,也就能十分轻松的破解了。这里特别提一下手机键盘加密的破解,手机键盘加密后有个比较特别的特征,即第二个数字不超过4,大多数不超过3,第一个数字没有1和0。看到这样的特征的话,不要犹豫,忘手机密码上想吧【扩展阅读】手机键盘加密的若
28、干方法新手必看的密码初级教程9.维吉尼亚密码【相关知识、概述】 名称:Vigenre Cipher 中译名:维吉尼亚密码/维热纳尔密码 密吧简称:维密 发明者:贝拉索注1(由维吉尼亚改良注2) 破解者:巴比奇注3 密码背景:这个密码首先应用了“密钥”的思想,其在密码届具有十分重要的意义。经过这样加密后,一个由六个字母组成的的密钥,其理论上的暴力破解工作量就将是凯撒密码注4的一千多万倍。注1吉奥万巴蒂斯塔贝拉索(Giovan Battista Bellaso,1505-?),意大利学者。其实维吉尼亚密码之前的名字是贝拉索密码,是贝拉索1553年发明的。但是由于维吉尼亚在1586年的改进,使得其加密得更为可靠,久而久之,贝拉索密码就被叫成了维吉尼亚密码。注2布莱斯德维吉尼亚(Blaise de Vigenre,1523-1596),一名法国的外交官,同时也是一位密码学家。1586年在维吉尼亚密码原基础上进行了改进。注3查尔斯巴比奇(Charles Babbage,1791-1871),英国数学家,差分机的发明者,其奠定了现代计算机的基本构架。于1854年成功破解了维吉尼亚密码,结束了维吉尼亚200多年的神话。注4凯撒密码,据说是由凯撒大帝所创造的密码,加密方法是将原文根据字母表顺序移位,具体请参考:http:/
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1