CTF 密码(题)


MD5的特征就是由大写字母、小写字母以及数字组成的32位或者16位的字符串。

md5
MD5位不可逆加密,不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密,例如我们手机的开机密码以及一些系统的密码。简单的md5解密是可以破解的(了解算法可以得知)
MD5的典型应用是对一段信息串 (Message)产生所谓的指纹 (fingerprint),以防止被“篡改”。比方说,你将一段话写在一个文本文件中,并对这个文本文件产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现

SHA-1与MD5的比较
因为二者均由MD4导出,SHA-1和MD5彼此很相似。相应的,他们的强度和其他特性也是相似,但还有以下几点不同:
l 对强行攻击的安全性:最显著和最重要的区别是SHA-1摘要比MD5摘要长32 位。使用强行技术,产生任何一个报文使其摘要等于给定报摘要的难度对MD5是2128数量级的操作,而对SHA-1则是2160数量级的操作。这样,SHA-1对强行攻击有更大的强度。(md5以32字符十六进制数字形式返回散列值,sha_1以40字符十六进制数字形式返回散列值)
l 对密码分析的安全性:由于MD5的设计,易受密码分析的攻击,SHA-1显得不易受这样的攻击。
l 速度:在相同的硬件上,SHA-1的运行速度比MD5慢。

md5碰撞
PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。

HASH函数,又称杂凑函数,是密码算法,用来处理电子签名
SHA-1和MD5都是目前最常用的杂凑函数
计算机安全协议,如SSL,PGP都用杂凑函数来进行签名
寻找两个输入得到相同的输出值在计算上是不可行的,这就是我们通常所说的抗碰撞的

bugku中一道bugku(md5 collision(NUPT_CTF))

collision就是碰撞,
题目说please input a
那就 ?a=…
那就将’0’拿去碰撞,随便输入一个md5加密后开头为0e的值
比如
?a=0e545993274517709034328855841020 得到flag

以下内容摘自这里

0e开头的md5和原值:
s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s1885207154a
0e509367213418206700842008763514
s1502113478a
0e861580163291561247404381396064
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
s155964671a
0e342768416822451524974117254469
s1184209335a
0e072485820392773389523109082030
s1665632922a
0e731198061491163073197128363787
s1502113478a
0e861580163291561247404381396064
s1836677006a
0e481036490867661113260034900752
s1091221200a
0e940624217856561557816327384675
s155964671a
0e342768416822451524974117254469
s1502113478a
0e861580163291561247404381396064
s155964671a
0e342768416822451524974117254469
s1665632922a
0e731198061491163073197128363787
s155964671a
0e342768416822451524974117254469
s1091221200a
0e940624217856561557816327384675
s1836677006a
0e481036490867661113260034900752
s1885207154a
0e509367213418206700842008763514
s532378020a
0e220463095855511507588041205815
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s214587387a
0e848240448830537924465865611904
s1502113478a
0e861580163291561247404381396064
s1091221200a
0e940624217856561557816327384675
s1665632922a
0e731198061491163073197128363787
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
s1665632922a
0e731198061491163073197128363787
s878926199a
0e545993274517709034328855841020

Base64特点:编码之后的结果,只有64个字符a-z,A-Z,0-9 / + 在加上辅助字符 =

rot13加密:
检查字母顺序并取代它在13位之后的对应字母,超过时则重新绕回26英文字母开头。只有这些出现在英文字母里的字符受影响;数字、符号、空白字符以及所有其他字符都不变。替换后的字母大小写保持不变。总之,看到排列奇怪的英文,考虑下它。

jother 编码特点
由+ [ ] ! ( ) 构成的东西就用jother解码。注意,在最外层加上英文输入法下的(),jother编码中,()和[]都是成对存在的
可以打开浏览器 按F12进入控制台
将jother编码的那些数据复制过去 按回车即可解码

比如i春秋Web中有一道

broken

这道题就是因为[]不成对,最后多了个(),解决掉就可以出flag.


题目

what a fuck!这是什么鬼东西(jother编码)

jother编码,jother是一种运用于javascript语言中利用少量字符构造精简的匿名函数方法对于字符串进行的编码方式,其中少量字符包括"[","]","{","}","(",")","!","+"。只用这些字符就能完成对任意字符串的编码,本质上是一种javascript的编码

遇到这种编码用F12 到控制台粘贴一下,按回车便可得到解码

你可能感兴趣的:(操作部分,理论部分,CTF)