密码破译.docx
- 文档编号:5994995
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:32
- 大小:317.21KB
密码破译.docx
《密码破译.docx》由会员分享,可在线阅读,更多相关《密码破译.docx(32页珍藏版)》请在冰点文库上搜索。
密码破译
比较有名的密码及一些加密方式
1.栅栏密码
2.猪圈密码
3.凯撒移位
4.摩斯电码
5.四方密码
6.希尔密码
7.ROT13(回转十三位)
8.键盘密码
9.维吉尼亚密码
10.单表替代密码(频率,bingo的破译密码)
常用trick
1.九键拼音(数字字母)
2.电脑与手机九键数字的转换(数字数字)
3.字母与字母序的字母数字转换(字母数字)
4.元素周期表与序号的转换(字母数字)
1.栅栏密码
Howtouse5*6=153246
99怎么用呢?
首先后面的6个数是从1到6,我考虑是解读的顺序。
那么前面可能就意味着是把字符每6个进行分组了。
那么把这30个字符分成5组,每组按照153246的顺序读,结果是:
MOUGIL/YTHWNO/LHAIGV/OISTYE/VNNHO.MIUOGL/YNHTWO/LGAHIV/OYSITE/VHNNH.
既然一共是30个字符,确实能够分成5组,栅栏密码。
也就是说,5个一组横着写,然后纵向阅读,可能就有意义了:
MOUGIL
YTHWNO
LHAIGV
OISTYE
VNNHO.
再考虑到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|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|.|
那么我们调整一下列的顺序,并且把竖排变成横排,变成了:
MYLOV
INGYO
UHASN
OTHIN
GWITH
LOVE.
在考虑到空格的位置,解密如下:
MOUGILYTHWNOLHAIGVOISTYEVNNHO.
MYLOVINGYOUHASNOTHINGWITHLOVE.
也就是:
Mylovingyouhasnothingwithlove.解密成功。
例:
密码:
I’DLIKETOLIVEWITHYOUINASMALLTOWN,WHERETHEREAREETERNALTWILIGHTSANDETERNALBELLS.
明文:
LK’IDILVTIOET YWHIENSUAIOLOATLMWENH,WHREETRETAEREATRLNEIHIGLWNESDATNLEARTL.ESLB
KEY:
6*13=>635142
回应:
HVOAUYEMBNEELFOYNYR.TEUU
KEY:
6*4=>635142
2.猪圈密码
Key:
"Xmarksthespot"的加密结果将呈现如下:
3.凯撒移位
快速破译的网站:
可参考的代码A
publicclassShiftCode{
privatestaticStringCiphertext="VRPHWLPHVLZDQWWRFKDWZLWKBRX,EXWLKDYHQRUHDVRQWRFKDWZLWKBRX";
privatestaticStringgetString(inti){
returnString.valueOf((char)('a'+i));
}
privatestaticintgetInt(chari){
return(i-'a');
}
publicstaticvoidshift(Stringciphertext,ints){
StringlowerCiphertext=ciphertext.toLowerCase();
for(inti=0;i if(lowerCiphertext.charAt(i)>'z'||lowerCiphertext.charAt(i)<'a'){ System.out.print(lowerCiphertext.charAt(i)); }else{ inttemp=getInt(lowerCiphertext.charAt(i)); temp=(temp+s)%26; System.out.print(getString(temp)); } } System.out.println(); } publicstaticvoidmain(String[]args){ for(inti=0;i<26;i++){ shift(Ciphertext,i); } } } 可参考的代码B /** *程序名称: 凯撒密码加密解密程序 *程序功能: 输出凯撒密码所有偏移结果,可应用于解密和加密 *程序思路: 遍历char组元素判断ASCII编码是否在英文字母范围内,然后偏移。 *@authorYeungKc *@version1.0 */ classCaesarCipher{ publicstaticvoidcaesarCipherShift(Stringciphertext){ System.out.println("密文: \t"+ciphertext+"\n\t\t开\t始\t输\t出\t明\t文"); char[]ciphertextArray=ciphertext.toCharArray();//Stringtochar //array for(inti=1;i<26;i++){//循环次数 System.out.print("第"+i+"次: \t"); for(charplainText: ciphertextArray){//开始遍历 plainText=determine(plainText,'A','Z',i);//A~Z判断区 plainText=determine(plainText,'a','z',i);//a~z判断区 System.out.print(plainText);//输出明文结果结束遍历 } System.out.println();//循环换行 } } //判定函数 privatestaticchardetermine(charplainText,chara,charz,inti){ if(a<=plainText&&plainText<=z)//判定是否符合英文范围 plainText=(char)(plainText+i>z? plainText+i-26 : plainText+i);//判定偏移后是否会超界并修正 returnplainText; } publicstaticvoidmain(String[]args){ Stringciphertext="Uibolzpv.";//密文 caesarCipherShift(ciphertext);//执行凯撒密码偏移 } 4.摩斯电码 Key: 5.四方密码 6.希尔密码 【相关知识、概述】 名称: HillCipher[注1] 中译名: 希尔密码 发明者: 希尔[注2] [注1]网上也有HillPassword的说法,但是应该是中式英语的误传。 [注2]莱斯特·S·希尔(LesterS.Hill,1891–1961),美国数学家、教育家。 1911年于哥伦比亚大学读完学士学位,1926年在耶鲁大学读完博士学位,于1926年发明希尔密码。 【加密方法】 由于这种密码涉及一点专业知识,所以我们尽量绕开复杂的部分(其实是我自己也没弄明白),直接讲如何加密。 就我理解的正常的加密方法是: 1、先数出来需要加密的文字有多少个字母,我们假设字母长度为n; 2、然后随机选择一串字母长度为n的平方的字母串; 3、将原文和密钥的字母替换为数字: A=0,B=1,C=2……Z=25(这里值得注意的是替换的数字要从0开始); 4、将原文的矩阵与密钥形成的n*n矩阵相乘; 5、将得出的结果除以26,得出的余数就是我们要求的密文。 解密的话只要通过密钥逆运算回去就可以了(由于线性代数微难,具体算法请自行研究……) 听起来很复杂吧…… 我们看到第4步的计算量相当大,如果原文有5个字母,用手算的话要算25个,如果原文有10个字母,就要算10×10=100次之多的四则运算了…… 如果用编程来实现的话还算简单,可是对于我们手算的来说工作量太大了…… 【变种加密】 为此我们需求一种易于操作的变种方法。 例如我们加密这样一句话: Mr.Hillisclimbingahill.(希尔先生爬小山) 这一小短句有21个字母,用常规的方法的话,我们需要21×21,也就是441个字长的密钥……这显然是手算的噩梦…… 这时我们可以利用希尔密码求余的思想建立一种简易的加密方法。 我们先选择任意的一个整数(不能与26有倍数关系,0、1、2、13等都不可以),例如此处我们选择数字5。 我们先做基本的整理,此时由于不做矩阵的运算了,我们就没有必要从0开始了。 原文: mrhillisclimbingahill(我习惯把原文统一为小写,把密文统一为大写,这样比较容易区分) 密钥: 5 原文转数字: 1318891212919312913291471891212 数字乘以密钥求余: 131214190808191715081913101918090514190808 求得密文: MLNSHHSQOHSMJSRIENSHH 利用这种方法加密的好处是利用密钥数字将原有的序列发散出去,利用求余收敛,但是究其根本还是替换密码。 解密的时候,已知密钥是5,密文为: MLNSHHSQOHSMJSRIENSHH 先将密文转换为数字: 131214190808191715081913101918090514190808 然后把其中所有不能被5整除的数都加上26,看能否被5整除,不能的话继续加26,直到能被5整除为止: 659040456060459515604565104570350540456060 所有数除以5,得出来的就是原文的字母表数字。 至于破解这种密码的方法,可以简单的将之等同于单表替换密码来解,也可以穷举密钥来解,在此就不举例了。 【扩展阅读】 WJ百科关于希尔密码的讲解(密码吧的同志们,你们懂的) iuuq: //fo.xjljqfejb.psh/xjlj/Ijmm_djqifs 7.ROT13 简单的移位密码 套用ROT13到一段文字上仅仅只需要检查字元字母顺序并取代它在13位之后 的对应字母,有需要超过时则重新绕回26英文字母开头即可。 A换成N、B换成O、依此类推到M换成Z,然后序列反转: N换成A、O换成B、最后Z换成M。 只有这些出现在英文字母里头的字元受影响;数字、符号、空白字元以及所有其他字元都不变。 因为只有在英文字母表里头只有26个,并且26=2×13,ROT13函数是它自己的逆反: 对任何字元x: ROT13(ROT13(x))=ROT26(x)=x。 换句话说,两个连续的ROT13应用函式会回复原始文字(在数学上,这有时称之为对合(involution);在密码学上,这叫做对等加密(reciprocalcipher))。 转换可以利用查找表完成,如下例所示: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm 例如,下面的英文笑话,精华句为ROT13所隐匿: HowcanyoutellanextrovertfromanintrovertatNSA? Vagurryringbef,gurrkgebiregybbxfnggurBGUREthl'ffubrf. 透过ROT13表格转换整片文字,该笑话的解答揭露如下: UbjpnalbhgryynarkgebiregsebznavagebiregngAFN? Intheelevators,theextrovertlooksattheOTHERguy'sshoes. 第二次ROT13函数将转回原始文字。 8.键盘密码 【相关知识、概述】 名称: 键盘密码 密码背景: 凡是利用键盘的特性而制作的密码,我们都可以称之为键盘密码。 [注1] 既然是利用键盘加密的方法,肯定是有了键盘之后才出现的产物,可见其历史并不久远。 常见的分类有计算机的键盘和手机的键盘两种,而这两种又根据具体的方法可以衍生出层出不穷的加密方法。 由于键盘在生活中十分常用,所以使用这种形式加密的频率十分之高。 天使贴的其中两层都是用到了键盘密码哦~学好这种密码的重要性可见一斑。 [注1]一些诸如利用五笔、智能ABC的加密形式,我们称之为输入法密码,不归于键盘密码一列。 【加密方法】 由于键盘密码的种类繁多,我们分开电脑的键盘和手机的键盘两种分开介绍。 『电脑键盘』 先让我们看看我们天天都会见到的键盘吧(这是偶清洗键盘时照的^^): 这算是一个比较标准的键盘了,我们主要关注的地方是大键盘区的字母和数字键,以及右边小键盘区的数字键。 最常用的电脑键盘加密方法是这样的: 『大键盘区』 『方法一』 我们注意到大键盘区所有的字母上面都有其对应的数字,这个位置几乎在所有的键盘都是相同的。 所以我们可以利用这一点应用单表替换的方法进行加密[注2]: 1234567890 QWERTYUIOP ASDFGHJKL ZXCVBNM 我们根据上表可以得出,Q是1下面的第一个,A是1下面的第二个……以此类推,每一个字母都会有其对应的数字: A12 B53 C33 D32 E31 F42 G52 H62 I81 J72 K82 L92 M73 N63 O91 P01 Q11 R41 S22 T51 U71 V43 W21 X23 Y61 Z13 第一个数字代表横向(X坐标)的位置,第二个数字代表纵向(Y坐标)的位置。 例如我们加密这样一句话: nicetomeetyou 对应刚才的字母表,我们可以轻松地得到密文: 63813331519173313151619171 而一旦我们知道了加密的方法后,我们也可以轻松的反解出原文。 有了这种加密方法,我们可以拥有相当多的变种加密方法: 例如(每一竖列是一种密码表): A: 11,! ! ,! 2,QQ B: 555,%%%,%3, C: 333,###,#3, D: 33,##,#2,EE E: 3,#,#1,E F: 44,$$,$2,RR G: 55,%%,%2,TT H: 66,^^,^2,YY I: 8,*,*1,I J: 77,&&,&2,UU K: 88,**,*2,II L: 99,((,(2,OO M: 777,&&&,&3,UUU N: 666,^^^,^3,YYY O: 9,(,(1,O P: 0,),)1,P Q: 1,! ,! 1,Q R: 4,$,$1,R S: 22,@@,@2,WW T: 55,%%,%2,T U: 7,&,&1,U V: 444,$$$,$3,RRR W: 2,@,@1,W X: 222,@@@,@3,W Y: 6,^,^1,Y Z: 111,,! 3,QQQ 第一列是将前文提到的Y坐标用重复次数表现,第二列是将数字替换为键盘上对应的符号,第三列则是将前文的X坐标数字替换为符号,第四列则是用的第一行的第一个字母代替数字。 值得注意的是,当替换的字长不等时(如第1、2、4列),最好用分隔符分割开每一个字母,或者用其他符号补位,这样做的好处是不会造成合法的接受人的困扰(即因分隔符位置的不同造成密码多解)。 这样的加密方法看起来很简单,但是相对应的,再加密的空间也很大。 举个简单的例子,我们可以把X、Y坐标的顺序颠倒一下,用第一个数字表示Y坐标,第二个顺序表示X坐标: A21,B35,C33,D23,E13,F24,G25,H26,I18,J27,K28,L29,M37,N36,O19,P10,Q11,R14,S22,T15,U17,V34,W12,X32,Y16,Z31 我们还可以把Y坐标的顺序颠倒一下(用4减),即: A12B51C31D32E33F42G52H62I83J72K82L92M71N61O93P03Q13R43S22T53U73V41W23X21Y63Z11 我们甚至还可以对坐标进行一下运算,更改一下坐标的原点位置[注3]等等,简而言之,键盘密码的灵活性很强,大家可以用键盘密码在和朋友聊天的时候折磨一下对方~ [注2]单表替换,即用新的字母表替换标准的字母表。 替换的文字可以是字母、符号、汉字,甚至可以是一句话,或者一幅图片。 许多经典的加密方法都是由此方法衍生的。 [注3]由于键盘中数字的排列“0”在“9”的后面,所以说是坐标其实并不准确,只是为了便于理解。 实际加密时,可以打乱键盘坐标的顺序。 『方法二』 这种方法与刚才的方法很类似,只是没有用数字那一行,而是利用了字母与字母之间的位置关系。 例如,我们看到字母Q在字母A的上面,而字母A则在字母Z的上面,所以我们可以利用这种关系加密,用Q替换A,用A替换Z,用Z替换Q,其他列以此类推: [注4] AQ,BG,CD,DE,EC,FR,GT,HY,IK,JU,KI,LO,MJ,NH,OL,PP,QZ,RV,SW,TB,UM,VF,WX,XS,YN,ZQ 同样的,我们可以衍生出许许多多不同的方法,诸如: 横向的替换、多字母的替换…… 至于更为有趣的加密方法还有待大家来探索~ [注4]在加密字母I、O、P时,可以用文中所写的用字母来替换,也可以用符号来替换,如用“,”来替换字母“I”,密码的加密方法很灵活,大家不必太过拘泥于我所讲的。 『小键盘区』 小键盘的加密方法比较有趣,其应用于手机键盘也同样适用,简单说是一种象形的替换方式。 例如我们加密字母A的序列是1478963456,其实际上就是在小键盘上利用数字在写字,这种加密十分有趣,但是缺点也很明显: 只能加密较短的文字,如果加密的文字量较大,则加密后的文字量将十分庞大。 由于究竟怎样画最像,笔画的顺序如何见仁见智,我这里提供的替换表仅供参考: A1478963456 B74178965456321 C9874123 D7417896321 E789741456123 F741789456 G9874123563 H741456963 I852 J7898521 K741954453 L74123 M1475963 N1475369 O78963214 P741789654 Q7412698753 R741789654453 S987456321 T789852 U7412369 V74269 W741585369 X753951 Y75952 Z7895123 『手机键盘』 手机我们每天都会用到,可以说手机这个东西我们再熟悉不过了,其键盘加密的原理和电脑键盘加密的原理类似,同样是运用了单表替换的思想。 我们先看看手机键盘长什么样子吧…… 一般传统的手机键盘都长这个样子==(懒得拍照了……) 1.....2ABC..3DEF 4GHI..5JKL..6MNO 7PQRS.8TUV.9WXYZ 加密的时候方法类似前文,例如加密: plantsvszombie,加密后的文字是: 7153216281748374946361214332 更多的加密方法请参考【扩展阅读】 【解密方法】 从繁多的加密方法我们可以看出,要想破解键盘密码,熟知各种的加密方法的特征是关键,唯有这样才能比较快的判断出加密形式,也就能十分轻松的破解了。 这里特别提一下手机键盘加密的破解,手机键盘加密后有个比较特别的特征,即第二个数字不超过4,大多数不超过3,第一个数字没有1和0。 看到这样的特征的话,不要犹豫,忘手机密码上想吧~ 【扩展阅读】 手机键盘加密的若干方法 新手必看的密码初级教程 9.维吉尼亚密码 【相关知识、概述】 名称: VigenèreCipher 中译名: 维吉尼亚密码/维热纳尔密码 密吧简称: 维密 发明者: 贝拉索[注1](由维吉尼亚改良[注2]) 破解者: 巴比奇[注3] 密码背景: 这个密码首先应用了“密钥”的思想,其在密码届具有十分重要的意义。 经过这样加密后,一个由六个字母组成的的密钥,其理论上的暴力破解工作量就将是凯撒密码[注4]的一千多万倍。 [注1]吉奥万·巴蒂斯塔·贝拉索(GiovanBattistaBellaso,1505-? ),意大利学者。 其实维吉尼亚密码之前的名字是贝拉索密码,是贝拉索1553年发明的。 但是由于维吉尼亚在1586年的改进,使得其加密得更为可靠,久而久之,贝拉索密码就被叫成了维吉尼亚密码。 [注2]布莱斯·德·维吉尼亚(BlaisedeVigenère,1523-1596),一名法国的外交官,同时也是一位密码学家。 1586年在维吉尼亚密码原基础上进行了改进。 [注3]查尔斯·巴比奇(CharlesBabbage,1791-1871),英国数学家,差分机的发明者,其奠定了现代计算机的基本构架。 于1854年成功破解了维吉尼亚密码,结束了维吉尼亚200多年的神话。 [注4]凯撒密码,据说是由凯撒大帝所创造的密码,加密方法是将原文根据字母表顺序移位,具体请参考: http: /
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 密码 破译