密码破译.docx

上传人:b****4 文档编号:5994995 上传时间:2023-05-09 格式:DOCX 页数:32 大小:317.21KB
下载 相关 举报
密码破译.docx_第1页
第1页 / 共32页
密码破译.docx_第2页
第2页 / 共32页
密码破译.docx_第3页
第3页 / 共32页
密码破译.docx_第4页
第4页 / 共32页
密码破译.docx_第5页
第5页 / 共32页
密码破译.docx_第6页
第6页 / 共32页
密码破译.docx_第7页
第7页 / 共32页
密码破译.docx_第8页
第8页 / 共32页
密码破译.docx_第9页
第9页 / 共32页
密码破译.docx_第10页
第10页 / 共32页
密码破译.docx_第11页
第11页 / 共32页
密码破译.docx_第12页
第12页 / 共32页
密码破译.docx_第13页
第13页 / 共32页
密码破译.docx_第14页
第14页 / 共32页
密码破译.docx_第15页
第15页 / 共32页
密码破译.docx_第16页
第16页 / 共32页
密码破译.docx_第17页
第17页 / 共32页
密码破译.docx_第18页
第18页 / 共32页
密码破译.docx_第19页
第19页 / 共32页
密码破译.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

密码破译.docx

《密码破译.docx》由会员分享,可在线阅读,更多相关《密码破译.docx(32页珍藏版)》请在冰点文库上搜索。

密码破译.docx

密码破译

比较有名的密码及一些加密方式

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:

/

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2