一.md5(哈希算法)
md5:由0-9和a-f组成,长度为32,是一个32位长度的16进制字符串
形如 a8db182db78ed452ba0882fb9554fca
flag{666666666666}
注:缺位则补,多余则除(符合规则)
**有时候真的不是,可以试试十六进制转换字符.
hill密码(希尔密码)_野原新之助-CSDN博客_hill密码(了解一下)
简单例题你以为是md5吗 – Bugku CTF
二.猪圈密码
解出:haveagoodtimetoday
三.栅栏密码
栅栏密码:
就是把要加密的明文分成N个一组(栅栏数),
然后把每组的第1个字连起来,形成一段无规律的字符串。
不过栅栏密码本身长度不会太长,也就是组成栅栏的字母一般不会太多
解出得到 KEY{sad23jjdsa2}
这个比较简单,两层栅栏,分层,从上往下,自左向右读出:
KYsd3js2
E{a2jda}
四.ook!
题目:ok – Bugku CTF
特征:Brainfuck 类型密码,密文由 Ook 和 三种标点 . ! ? 构成,不见得都得用上,有的是Ook,有的没有Ook只有标点。
形如:
**在线工具yyds,python早点学起!
五.Brainfuck
特征: + – [ ] { } . < > 这些符号构成的密码
形如:
六.jsfuck
特征:[]+! () 经典组合,循环往复
解密来一波:CTF在线工具-在线JSfuck加密|在线JSfuck解密|JSfuck|JSfuck原理|JSfuck算法 (hiencode.com)
七.摩尔斯(Morse code)电码
附电码对应表:
在线工具: 摩斯密码在线加密解密 – Bugku
八.凯撒密码
特征:英文字母排序往后延,有一定的偏移,密钥是 1 <= k <= 26,y = x + k;
如果偏移量是4,那么abc都往后偏移4,变成efg,以此类推。加密需往后数,解密需要往前数
flag{hello_ctf}
米斯特安全解密有被快乐到,感谢网友,附上链接:CTFcrackTools的下载与安装_qq_40328109的博客-CSDN博客
九.Escape/unescape
特征:(1)Escape编码/加密,就是字符对应UTF-16 16进制表示方式前面加%u。
(2)Unescape解码/解密 ,就是去掉"%u"后,将16进制字符还原后,由utf-16转码到自己目标字符
在线工具:在线Escape加密解密工具-在线Escape字符串编码解码工具 (jsons.cn)
十.base家族
Base64:
*特征:(1)在base64中的可打印字符包括字母A-Z、a-z、数字0-9,+ / =
- 永远是4的倍数,不足四的用=补齐
如要编码的字节数不能被3整除,最后会多出1个或2个字节,那么可以使用下面的方法进行处理:先使用0字节值在末尾补足,使其能够被3整除,然后再进行base64的编码。
在编码后的base64文本后加上一个或两个“=”号,代表补足的字节数。也就是说,当最后剩余一个八位字节(一个byte)时,最后6位的base64字节块有四位是0值,最后附加上两个等号;如果最后剩余两个八位字节(2byte)时,最后一个6位的base字节块有两位是0值,最后附加一个等号。
Base32:
*特征:用32个可打印字符(字母A-Z和数字2-7)对任意字节数据进行编码的方案,编码后的字符串不用区分大小写并排除了容易混淆的字符
*形如:
*附对照表:
*待补充
Base16:
*特征:用16个ASCII可打印字符(数字0-9和字母A-F),对任意字节数据进行编码。先获取输入字符串每个字节的二进制值(不足8比特在高位补0),然后将其串联进来,再按照4比特一组进行切分,将每组二进制数分别转换成十进制。(十六进制转ASCII)
*形如:
*区别:Base16编码是一个标准的十六进制字符串(注意是字符串而不是数值),更易被人类和计算机使用,因为它并不包含任何控制字符,以及Base64和Base32中的“=”符号。
Base58:
*特征:与base64相似(上方),但无“0,O,i,I,+,/”对应符号
Base85:
*待补充
Base91:
*特征:需要91个字符来表示ASCII编码的二进制数据。 从94个可打印ASCII字符(0x21-0x7E)中,以下三个字符被省略以构建basE91字母:-(破折号,0x2D) \(反斜杠,0x5C) '(撇号,0x27)
Base91编码/解码 – 一个工具箱 – 好用的在线工具都在这里! (atoolbox.net)
十一.Unicode(万国码)
特征:每一个字符都用一个5位字符编码表示,并用 \ 分割, 其中&#、&#x、\u 都可以用来表示一串 unicode 编码。
十二.Urlencode
Url编码通常也被称为百分号编码,是因为它的编码方式非常简单,使用%百分号加上两位的字符——0123456789ABCDEF——代表一个字节的十六进制形式。 Url编码默认使用的字符集是US-ASCII。 例如a在US-ASCII码中对应的字节是0x61,那么Url编码之后得到的就是%61
形如:
UrlEncode编码和UrlDecode解码-在线URL编码解码工具
十三.核心价值观编码
特征:社会主义核心价值观这些文字
例子就不举了。
十四.佛语论禅
特征:不认识的字(笔画特别多),有”梵,哆,佛曰,施主“等字眼
十五.当铺密码
特征:简单汉字组成,当前汉字有多少笔画凸出来,就转化乘数字几
形如:
十六.希尔(hill)密码
希尔密码是矩阵乘法密码,运用基本矩阵论原理的替换密码。每个字母当作26进制数字:A=0, B=1, C=2… 一串字母当成n维向量,
跟一个n×n的密钥矩阵相乘,再将得出的结果模26
原理:将d个明文字母通过线性变换将它们转换为d个密文字母。解密只要作一次逆变换就可以了,密钥就是变换矩阵本身。
附上,了解一下:
hill密码(希尔密码)_野原新之助-CSDN博客_hill密码
加深对希尔密码的理解,题目:小山丘的秘密 – Bugku CTF
**附上我的新手wp(水平有限,全是大白话):
bugku ctf 小山丘的秘密_LJW_wenjingli7的博客-CSDN博客
在线工具也要密钥(一般题目给提示),才能解开。
希尔密码加密/解密 – 一个工具箱 – 好用的在线工具都在这里! (atoolbox.net)
十七.培根(bacon)密码
特征:全由a(A)和b(B)组成,一种替换密码,根据所给表一一对应转换即可加密解密。
它的特殊之处在于:可以通过不明显的特征来隐藏密码信息,比如大小写、正斜体等,只要两个不同的属性,密码即可隐藏。
例如:
好了,给你提示这是培根密码,D和C循环往复,强行培根c–>a,d–>b.解密!
在线工具|培根密码加解密 (bugku.com)
- SHA 家族函数的比较
- sha1(安全散列算法1)
特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要。
是一种密码散列函数,SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,和MD5类似
特征:散列值通常的呈现形式为40个十六进制数。
附上大佬详解:
SHA1算法实现及详解_随心散人专栏-CSDN博客_sha1算法详细图解
举例:
明文:hello,world.123456
sha1(hello,world.123456)= 0179303b8f08fbc3d16cd23a4be5828790e12375
法及其变体 |
输出长度 |
内部状态大小 |
块大小 |
最大消息长度 |
循环 |
操作 |
安全性 |
示例的性能 MiB/s) |
|
MD5 |
128 |
128 |
512 |
264 − 1 |
64 |
按位与, 按位异或, 循环移位, 填充(求模 232), 按位或 |
<18 |
335 |
|
SHA-0 |
160 |
160 |
512 |
264 − 1 |
80 |
按位与, 按位异或, 循环移位, 填充(求模 232),按位或 |
<34 |
– |
|
SHA-1 |
160 |
160 |
512 |
264 − 1 |
80 |
<63 |
192 |
||
SHA-2 |
SHA-224 |
224 |
256 |
512 |
264 − 1 |
64 |
按位与, 按位异或, 循环移位, 填充(求模 232), 按位或, 移位 |
是 |
139 |
SHA-384 |
384 |
512 |
1024 |
2128 − 1 |
80 |
按位与, 按位异或, 循环移位, 填充(求模 264), 按位或, 移位 |
是 |
154 |
|
SHA-3 |
SHA3-224 |
224 |
1600 |
1152 |
无限制 |
24 |
按位与, 按位异或, 循环移位, 取反 |
是 |
– |
SHAKE128 |
d (可变长) |
1344 |
是 |
– |
十九.Bubble编码
特征:5个字符串-5个字符串(循环往复),形象地气泡一个接着一个
形如
很长的话可以进行多次解密,爆出flag
二十.rsa算法
二十一.柱形密码
了解请看,柱形密码:密码学(编自crimaster) – 知乎 (zhihu.com)
突然翻到,碰到题目要记得回来补
CTF在线工具-在线简单换位密码加密|在线简单换位解密|简单换位密码算法|Simple Substitution Cipher (hiencode.com)