一:常见编码类型
ASCII编码
(1)特征:
ASCII在线转化地址:http://www.mokuge.com/tool/asciito16/
工具转码:
(1)小葵多功能转换工具
(2)CTFcrackTools工具
base家族编码
(1)base64编码
特点
:由A-Z,a-z,0-9,+,/64个可见字符组成、""符号作为后缀填充、不属于编码字符;一般情况下密文尾部会有两个==符号,并且有大写字母和小写字母的混合组成
原理
:3个8位字符变成4个6位字符,之后在6位的前面补两个0;形成4个8位的形式
eg:
(2)base32编码
特点
:由字母A-Z,数字2-7共32个可见字符组成;""的作用作为后缀填充
(3)base16编码
特点:使用0-9和字符A-F共计16个可见字符组成,不会出现"="字符
(4)base58编码
特点
:用于比特币的一种独特的加密方法,主要用于产生比特比的钱包地址;相比于Base64,base58不使用数字0;字母大写O,字母大写I,字母小写l,以及+和/符号
(5)base62编码
特点
:相比于base64,不会使用+和/符号,就刚好62个可见字符
(6)base91;base92编码
(7)base100编码
特点
:就是一堆表情
unicode编码
(1)特点:密文中有多个\uxxx
(2)在线解密:http://tool.chinaz.com/Tool/Unicode.aspx
栅栏密码
(1)特征:所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话,一般常见的就是两栏(key=2);一般来说见到一堆字母没有空格,就应该想一想是不是栅栏。
eg1:
fa{fe13f590lg6d46d0d0}
(2)解密网站https://ctf.bugku.com/tool/railfence
比赛可能是内网,使用小工具解密
摩尔斯密码
(1)特征:密文由不规律的.、/、-和空格组成
eg1:
..-./.-../.-/--./----.--/-../...--/..-./-.-./-.../..-./.----/--.../..-./----./...--/----./----./...../-----/....-/-----.-
(2)解密:(发现里面还有URL编码)(进一步处理得到flag);解密网站:https://www.uutils.com/enc/morse.html
URL编码
解题中的密文涉及url编码,url编码的特征是使用 "%" 其后跟随两位的十六进制数来替换非 ASCII 字符
shellcode编码
(1)特点:
是一段利用软件漏洞而执行的代码、shellcode是16进制的机器码
XXencode编码
UUencode编码
AAencode编码
将JS代码转换成表情包,也就是常说的颜文字JS加密
JSfuck编码
特点:JSfuck只使用6种字符[]!()+
来书写任何的JS代码
jother编码
特点:jother只使用8种字符[]!()+{}
来书写任何的JS代码
Brainfuck
特点:使用8种字符,所有的操作都由这八种字符组成来完成
eg:
ook加密
(1)特征:ook密码中有大量ook,加上一些符号;Ook! has only three distinct syntax elements:Ook.Ook?Ook!这种就是ook密码
或者是这种类型的:
(2)解密:https://www.splitbrain.org/services/oo
+-<>加密
-+<>密码解密:https://brainfuck-visualizer.netlify.app/
敲击码
特点:
猪圈密码
(1)建材下载之后发现是base64编码;尝试base64编码转化文本,不成功,转换为图片成功了
发现是猪圈密码:
解密拿到flag
棋盘密码
(1)解密
数据密码之后告诉我是一种5比特的编码,直接百度,找到解码网站
MD5加密
(1)#MD5中字符都是在a-f0-9之间
解密(脚本自己找)
元音加密
hill密码
转轮机加密:
指解密中密文涉及转轮机加密,转轮机密文的特点是等长的分好组的乱序字母,原理是转齿轮把一个字母换成另一个来拼成一句话,所以会有多组密钥,但是只有一组密文。
JS混淆
(1)特点:通常在JS脚本里面使用eval与function函数进行混淆
eg:
<script>
eval("\x64\x65\x65\x45\x76")
</script>
(2)JS在线解混淆:http:/www.atool.org/jscompression.php
二:稀奇古怪的编码
社会主义核心价值观编码
特带:
与佛伦禅
特带:以佛曰
开头
以熊论道
http://hi.pcmoe.net/
兽音加密
https://roar.iiilab.com/
三:复杂密码类型
ECC加密:
是一种建立公开密钥加密的算法,基于椭圆曲线数学的椭圆曲线密码学。
凯撒密码
在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。
加密就是明文向后移动展现出对应的密文。
解密就是密文向前移动展现出对应的明文。
eg:
摩斯密码
摩尔斯电码也被称作摩斯密码,是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。它发明于1837年,是一种早期的数字化通信形式。不同于现代化的数字通讯,摩尔斯电码只使用零和一两种状态的二进制代码,它的代码包括五种:短促的点信号“・”,读“滴”(Di)保持一定时间的长信号“-”,读“嗒”(Da)表示点和划之间的停顿、每个词之间中等的停顿,以及句子之间长的停顿。
云影密码
此密码运用了1248代码,因为本人才疏学法,问未发现有过使用的先例,因此暂归为原创密码。由于这个密码,我和片风云影初识,为了纪念,将其命名为“云影密码”。
有了1,2,4,8这四个苘单的数字,你可以以加法表示出0~9任何个数字,例如0=28,7=124,9=18这样,再用1-26来表示A-Z,就可以用作密码了。为了不至于混乱,我个人引入了第五个数字0,来用作间隔,以遍免翻译错误,所以还可以称“01248密码”
注意(3个及以上数字时):
虽然是相加,但是可以在数字内不按顺序相加,如124可写成(12)4和1(24)结果分别是7和16,只要保证不大于26即可
培根密码
培根所用的密码是一种本质上用二进制数设计的,没有用通常的0和1来表示,而是采用a和b
eg:
转轮机加密
(1)eg:
点击查看代码
rotor = [ #这里是要输入的转轮机原始字符串
"ZWAXJGDLUBVIQHKYPNTCRMOSFE", "KPBELNACZDTRXMJQOYHGVSFUWI",
"BDMAIZVRNSJUWFHTEQGYXPLOCK", "RPLNDVHGFCUKTEBSXQYIZMJWAO",
"IHFRLABEUOTSGJVDKCPMNZQWXY", "AMKGHIWPNYCJBFZDRUSLOQXVET",
"GWTHSPYBXIZULVKMRAFDCEONJQ", "NOZUTWDCVRJLXKISEFAPMYGHBQ",
"XPLTDSRFHENYVUBMCQWAOIKZGJ", "UDNAJFBOWTGVRSCZQKELMXYIHP",
"MNBVCXZQWERTPOIUYALSKDJFHG", "LVNCMXZPQOWEIURYTASBKJDFHG",
"JZQAWSXCDERFVBGTYHNUMKILOP"
]
cipher = "NFQKSEVOQOFNP" #这是要输入转轮机密文
key = [2,3,7,5,13,12,9,1,8,10,4,11,6] #这是要输入转轮机密钥
tmp_list=[]
for i in range(0, len(rotor)):
tmp=""
k = key[i] - 1
for j in range(0, len(rotor[k])):
if cipher[i] == rotor[k][j]:
if j == 0:
tmp=rotor[k]
break
else:
tmp=rotor[k][j:] + rotor[k][0:j]
break
tmp_list.append(tmp)
# print(tmp_list)
message_list = []
for i in range(0, len(tmp_list[i])):
tmp = ""
for j in range(0, len(tmp_list)):
tmp += tmp_list[j][i]
message_list.append(tmp)
print(message_list)
def spread_list(lst):
for item in lst:
if isinstance(item,(list,tuple)):
yield from spread_list(item)
else:
yield item
pass
if __name__ == '__main__':
for i in spread_list(message_list):
print("*"*25)
print(i)
ECC的主要优势是在某些情况下它比其他的方法使用更小的密钥——比如RSA加密算法——提供相当的或更高等级的安全。ECC的另一个优势是可以定义群之间的双线性映射,基于Weil对或是Tate对;双线性映射已经在密码学中发现了大量的应用,例如基于身份的加密。其缺点是同长度密钥下加密和解密操作的实现比其他机制花费的时间长 [1] ,但由于可以使用更短的密钥达到同级的安全程度,所以同级安全程度下速度相对更快。一般认为160比特的椭圆曲线密钥提供的安全强度与1024比特RSA密钥相当。
eg:
三:脚本分享
常用脚本
密码学这方面很杂很乱,变化多端、此文章仅仅做了部分讲解,密码学这部分就告一段落了!
标签:tmp,编码,专项,加密,list,Crypto,解密,密码
From: https://www.cnblogs.com/gsupl/p/18313600