转载于:利刃信安 利刃信安 2023-01-09 02:40 发表于天津
CTF常见编码及加解密(超全)
常见CTF编码及加解密
计算机中的数据都是按字节存储。一个字节(Byte)由8个二进制位组成(bit)。(组成范围是0~255(28)) 一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111。
ASCII编码
简述 :
ASCII 码是对英语字符与二进制位之间的关系,做了统一规定。
基本的 ASCII 字符集共有 128 个字符,其中有 96 个可打印字符,包括常用的字母、数字、标点符号等,
如:空格SPACE 是32(二进制:00100000);
数字0 是48(二进制:00110000);
大写字母A 是65(二进制:01000001)。
另外还有 32 个控制字符(不能打印出来)。
这128个符号,只占用了一个字节的后面7位,最前面的一位统一规定为0。
特征: 只含有数字
• 0-9, 49-57 • A-Z, 65-90 • a-z, 97-122
举例:
明文:hello,world.
十六进制:0x680x650x6c0x6c0x6f0xff0c0x770x6f0x720x6c0x640x2e
十进制:1041011081081112551211911111410810046
二进制:011010000110010101101100011011000110111100101100011101110110111101110010011011000110010000101110
ASCII解码
https://www.107000.com/T-Ascii/
http://www.ab126.com/goju/1711.html
http://www.hiencode.com/jinzhi.html
https://baiy.github.io/Ctool/tool.html#/tool/ascii
https://icyberchef.com/#recipe=Text_Encoding_Brute_Force('Encode')
https://www.qqxiuzi.cn/bianma/ascii.htm
ASCII码对照表
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代美式英语,并等同于国际标准ISO/IEC 646。ASCII首次发布于1963年,后经数次修订,1986年定型最终版本使用至今。它是计算机中使用的第一个标准字符集编码。
ASCII编码范围0x00-0x7F,即十进制的0-127,定义了128个单字节字符,其中包含95个可打印字符(数字、字母、符号),以及33个控制字符(下表中文描述的字符)。国标码GB18030、国际码Unicode均兼容ASCII编码。
标准ASCII编码表
| ASCII码 | 字符 | | | | ------- | ------ | -------- | ------------------ | | 16进制 | 10进制 | 2进制 | | | 0x00 | 0 | 00000000 | NUL 空 | | 0x01 | 1 | 00000001 | SOH 标题开始 | | 0x02 | 2 | 00000010 | STX 正文开始 | | 0x03 | 3 | 00000011 | ETX 正文结束 | | 0x04 | 4 | 00000100 | EOT 传输结束 | | 0x05 | 5 | 00000101 | ENQ 询问字符 | | 0x06 | 6 | 00000110 | ACK 承认 | | 0x07 | 7 | 00000111 | BEL 报警 | | 0x08 | 8 | 00001000 | BS 退一格 | | 0x09 | 9 | 00001001 | HT 横向制表 | | 0x0A | 10 | 00001010 | LF 换行 | | 0x0B | 11 | 00001011 | VT 垂直制表 | | 0x0C | 12 | 00001100 | FF 走纸控制 | | 0x0D | 13 | 00001101 | CR 回车 | | 0x0E | 14 | 00001110 | SO 移位输出 | | 0x0F | 15 | 00001111 | SI 移位输入 | | 0x10 | 16 | 00010000 | DLE 数据链路转义 | | 0x11 | 17 | 00010001 | DC1 设备控制1 | | 0x12 | 18 | 00010010 | DC2 设备控制2 | | 0x13 | 19 | 00010011 | DC3 设备控制3 | | 0x14 | 20 | 00010100 | DC4 设备控制4 | | 0x15 | 21 | 00010101 | NAK 否定 | | 0x16 | 22 | 00010110 | SYN 空转同步 | | 0x17 | 23 | 00010111 | ETB 信息组传送结束 | | 0x18 | 24 | 00011000 | CAN 作废 | | 0x19 | 25 | 00011001 | EM 纸尽 | | 0x1A | 26 | 00011010 | SUB 换置 | | 0x1B | 27 | 00011011 | ESC 换码 | | 0x1C | 28 | 00011100 | FS 文字分隔符 | | 0x1D | 29 | 00011101 | GS 组分隔符 | | 0x1E | 30 | 00011110 | RS 记录分隔符 | | 0x1F | 31 | 00011111 | US 单元分隔符 | | 0x20 | 32 | 00100000 | (space) | | 0x21 | 33 | 00100001 | ! | | 0x22 | 34 | 00100010 | ” | | 0x23 | 35 | 00100011 | # | | 0x24 | 36 | 00100100 | $ | | 0x25 | 37 | 00100101 | % | | 0x26 | 38 | 00100110 | & | | 0x27 | 39 | 00100111 | ' | | 0x28 | 40 | 00101000 | ( | | 0x29 | 41 | 00101001 | ) | | 0x2A | 42 | 00101010 | * | | 0x2B | 43 | 00101011 | + | | 0x2C | 44 | 00101100 | , | | 0x2D | 45 | 00101101 | - | | 0x2E | 46 | 00101110 | . | | 0x2F | 47 | 00101111 | / | | 0x30 | 48 | 00110000 | 0 | | 0x31 | 49 | 00110001 | 1 | | 0x32 | 50 | 00110010 | 2 | | 0x33 | 51 | 00110011 | 3 | | 0x34 | 52 | 00110100 | 4 | | 0x35 | 53 | 00110101 | 5 | | 36 | 54 | 00110110 | 6 | | 0x37 | 55 | 00110111 | 7 | | 0x38 | 56 | 00111000 | 8 | | 0x39 | 57 | 00111001 | 9 | | 0x3A | 58 | 00111010 | : | | 0x3B | 59 | 00111011 | ; | | 0x3C | 60 | 00111100 | < | | 0x3D | 61 | 00111101 | = | | 0x3E | 62 | 00111110 | > | | 0x3F | 63 | 00111111 | ? | | 0x40 | 64 | 01000000 | @ | | 0x41 | 65 | 01000001 | A | | 0x42 | 66 | 01000010 | B | | 0x43 | 67 | 01000011 | C | | 0x44 | 68 | 01000100 | D | | 0x45 | 69 | 01000101 | E | | 0x46 | 70 | 01000110 | F | | 0x47 | 71 | 01000111 | G | | 0x48 | 72 | 01001000 | H | | 0x49 | 73 | 01001001 | I | | 0x4A | 74 | 01001010 | J | | 0x4B | 75 | 01001011 | K | | 0x4C | 76 | 01001100 | L | | 0x4D | 77 | 01001101 | M | | 0x4E | 78 | 01001110 | N | | 0x4F | 79 | 01001111 | O | | 0x50 | 80 | 01010000 | P | | 0x51 | 81 | 01010001 | Q | | 0x52 | 82 | 01010010 | R | | 0x53 | 83 | 01010011 | S | | 0x54 | 84 | 01010100 | T | | 0x55 | 85 | 01010101 | U | | 0x56 | 86 | 01010110 | V | | 0x57 | 87 | 01010111 | W | | 0x58 | 88 | 01011000 | X | | 0x59 | 89 | 01011001 | Y | | 0x5A | 90 | 01011010 | Z | | 0x5B | 91 | 01011011 | [ | | 0x5C | 92 | 01011100 | \ | | 0x5D | 93 | 01011101 | ] | | 0x5E | 94 | 01011110 | ^ | | 0x5F | 95 | 01011111 | _ | | 0x60 | 96 | 01100000 | ` | | 0x61 | 97 | 01100001 | a | | 0x62 | 98 | 01100010 | b | | 0x63 | 99 | 01100011 | c | | 0x64 | 100 | 01100100 | d | | 0x65 | 101 | 01100101 | e | | 0x66 | 102 | 01100110 | f | | 0x67 | 103 | 01100111 | g | | 0x68 | 104 | 01101000 | h | | 0x69 | 105 | 01101001 | i | | 0x6A | 106 | 01101010 | j | | 0x6B | 107 | 01101011 | k | | 0x6C | 108 | 01101100 | l | | 0x6D | 109 | 01101101 | m | | 0x6E | 110 | 01101110 | n | | 0x6F | 111 | 01101111 | o | | 0x70 | 112 | 01110000 | p | | 0x71 | 113 | 01110001 | q | | 0x72 | 114 | 01110010 | r | | 0x73 | 115 | 01110011 | s | | 0x74 | 116 | 01110100 | t | | 0x75 | 117 | 01110101 | u | | 0x76 | 118 | 01110110 | v | | 0x77 | 119 | 01110111 | w | | 0x78 | 120 | 01111000 | x | | 0x79 | 121 | 01111001 | y | | 0x7A | 122 | 01111010 | z | | 0x7B | 123 | 01111011 | { | | 0x7C | 124 | 01111100 | | | | 0x7D | 125 | 01111101 | } | | 0x7E | 126 | 01111110 | ~ | | 0x7F | 127 | 01111111 | DEL 删除 |
Base家族编码
Base16 / Base32 / Base64 / Base58 / Base85 / Base 100
简述:
Base16编码
Base16编码是将二进制文件转换成由16个字符组成的文本
它的特点是没有等号并且数字要多于字母
Base16编码的方式:
1.将数据(根据ASCII编码,UTF-8编码等)转成对应的二进制数,不足8比特位高位补0。然后将所有的二进制全部串起来,4个二进制位为一组,转化成对应十进制数。
2.根据十进制数值找到Base16编码表里面对应的字符。Base16是4个比特位表示一个字符,所以原始是1个字节(8个比特位)刚好可以分成两组,也就是说原先如果使用ASCII编码后的一个字符,现在转化成两个字符。数据量是原先的2倍。
| 值 | 编码 | 值 | 编码 | | ---- | ---- | ---- | ---- | | 0 | 0 | 8 | 8 | | 1 | 1 | 9 | 9 | | 2 | 2 | 10 | A | | 3 | 3 | 11 | B | | 4 | 4 | 12 | C | | 5 | 5 | 13 | D | | 6 | 6 | 14 | E | | 7 | 7 | 15 | F |
Base16编码是一个标准的十六进制字符串(注意是字符串而不是数值),更易被人类和计算机使用,因为它并不包含任何控制字符,以及Base64和Base32中的“=”符号。
Base32编码
base32的编码表是由(A-Z、2-7)32个可见字符构成,“=”符号用作后缀填充。
他的特点是明文超过十个后面就会有很多等号
Base32使用了ASCII编码中可打印的32个字符(大写字母AZ和数字27)对任意字节数据进行编码.Base32将串起来的二进制数据按照5个二进制位分为一组,由于传输数据的单位是字节(即8个二进制位).所以分割之前的二进制位数是40的倍数(40是5和8的最小公倍数).如果不足40位,则在编码后数据补充"=",一个"="相当于一个组(5个二进制位),编码后的数据是原先的8/5倍. Base32编码表
| 值 | 符号 | 值 | 符号 | 值 | 符号 | 值 | 符号 | | ------ | ---- | ---- | ---- | ---- | ---- | ---- | ---- | | 0 | A | 8 | I | 16 | Q | 24 | Y | | 1 | B | 9 | J | 17 | R | 25 | Z | | 2 | C | 10 | K | 18 | S | 26 | 2 | | 3 | D | 11 | L | 19 | T | 27 | 3 | | 4 | E | 12 | M | 20 | U | 28 | 4 | | 5 | F | 13 | N | 21 | V | 29 | 5 | | 6 | G | 14 | O | 22 | W | 30 | 6 | | 7 | H | 15 | P | 23 | X | 31 | 7 | | 填充 | = | | | | | | |
Base32将任意字符串按照字节进行切分,并将每个字节对应的二进制值(不足8比特高位补0)串联起来,按照5比特一组进行切分,并将每组二进制值转换成十进制来对应32个可打印字符中的一个。
由于数据的二进制传输是按照8比特一组进行(即一个字节),因此Base32按5比特切分的二进制数据必须是40比特的倍数(5和8的最小公倍数)。例如输入单字节字符“%”,它对应的二进制值是“100101”,前面补两个0变成“00100101”(二进制值不足8比特的都要在高位加0直到8比特),从左侧开始按照5比特切分成两组:“00100”和“101”,后一组不足5比特,则在末尾填充0直到5比特,变成“00100”和“10100”,这两组二进制数分别转换成十进制数,通过上述表格即可找到其对应的可打印字符“E”和“U”,但是这里只用到两组共10比特,还差30比特达到40比特,按照5比特一组还需6组,则在末尾填充6个“=”。填充“=”符号的作用是方便一些程序的标准化运行,大多数情况下不添加也无关紧要,而且,在URL中使用时必须去掉“=”符号。
与Base64相比,Base32具有许多优点:
• 适合不区分大小写的文件系统,更利于人类口语交流或记忆。 • 结果可以用作文件名,因为它不包含路径分隔符 “/”等符号。 • 排除了视觉上容易混淆的字符,因此可以准确的人工录入。(例如,RFC4648符号集忽略了数字“1”、“8”和“0”,因为它们可能与字母“I”,“B”和“O”混淆)。 • 排除填充符号“=”的结果可以包含在URL中,而不编码任何字符。
Base32也比Base16有优势:
Base32的缺点:
Base64编码
base64的编码表是由(A-Z、a-z、0-9、+、/)64个可见字符构成,“=”符号用作后缀填充。
一般情况下密文尾部都会有两个等号,明文很少的时候则没有
Base64编码要求把3个8位字节(38=24)转化为4个6位的字节(46=24),之后在6位的前面补两个0,形成8位一个字节的形式。如果剩下的字符不足3个字节,则用0填充,输出字符使用‘=’,因此编码后输出的文本末尾可能会出现1或2个‘=’。
为了保证所输出的编码位可读字符,Base64制定了一个编码表,以便进行统一转换。编码表的大小为2^6=64,这也是Base64名称的由来。
Base64编码表
| 码值 | 字符 | 码值 | 字符 | 码值 | 字符 | 码值 | 字符 | 码值 | 字符 | 码值 | 字符 | 码值 | 字符 | 码值 | 字符 | | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | | 0 | A | 8 | I | 16 | Q | 24 | Y | 32 | g | 40 | o | 48 | w | 56 | 4 | | 1 | B | 9 | J | 17 | R | 25 | Z | 33 | h | 41 | p | 49 | x | 57 | 5 | | 2 | C | 10 | K | 18 | S | 26 | a | 34 | i | 42 | q | 50 | y | 58 | 6 | | 3 | D | 11 | L | 19 | T | 27 | b | 35 | j | 43 | r | 51 | z | 59 | 7 | | 4 | E | 12 | M | 20 | U | 28 | c | 36 | k | 44 | s | 52 | 0 | 60 | 8 | | 5 | F | 13 | N | 21 | V | 29 | d | 37 | l | 45 | t | 53 | 1 | 61 | 9 | | 6 | G | 14 | O | 22 | W | 30 | e | 38 | m | 46 | u | 54 | 2 | 62 | + | | 7 | H | 15 | P | 23 | X | 31 | f | 39 | n | 47 | v | 55 | 3 | 63 | / |
Base64使用注意问题
一、Base64和URL传参问题
标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。
为解决此问题,可采用一种用于URL的改进Base64编码,它在末尾填充’='号,并将标准Base64中的“+”和“/”分别改成了“-”和“_”,这样就免去了在URL编解码和数据库存储时所要作的转换,避免了编码信息长度在此过程中的增加,并统一了数据库、表单等处对象标识符的格式。
二、Base64和URL传参问题改善
另有一种用于正则表达式的改进Base64变种,它将“+”和“/”改成了“!”和“-”,因为“+”,“*”以及前面在IRCu中用到的“[”和“]”在正则表达式中都可能具有特殊含义。
此外还有一些变种,它们将“+/”改为“-”或“.”(用作编程语言中的标识符名称)或“.-”(用于XML中的Nmtoken)甚至“_:”(用于XML中的Name)。
三、Base64转换后比原有的字符串长1/3
Base64要求把每三个8Bit的字节转换为四个6Bit的字节(38 = 46 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。
Base58编码
base58的编码表相比base64少了数字0,大写字母I,O,小写字母 l (这个是L),以及符号‘+’和‘/’
它最大的特点是没有等号
Base58是用于比特币(Bitcoin)中使用的一种独特的编码方式,主要用于产生Bitcoin的钱包地址。
相比Base64,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及"+“和”/"符号。
比特币的Base58字母表:
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
简单的说:Base58一种编码方式,跟十进制,十六进制一样,不过更短更省空间。
Base58的原理是什么?
二进制:0和1
十进制:1到10
十六进制:十进制的基础上加上了A-F 六个字母
Base58可以理解为一种58进制。
Base58包含了阿拉伯数字、小写英文字母,大写英文字母。
但是去掉了一些容易混淆的数字和字母:0(数字0)、O(o的大写字母)、l( L的小写字母)、I(i的大写字母)
Base91编码
base91的密文由91个字符(0-9,a-z,A-Z,!#$%&()*+,./:;<=>?@[]^_`{|}~”)组成
Base100编码
Base100编码/解码工具(又名:Emoji表情符号编码/解码),可将文本内容编码为Emoji表情符号;同时也可以将编码后的Emoji表情符号内容解码为文本。
特点就是一堆Emoji表情
Base100编码/解码工具(又名:Emoji表情符号编码/解码),可将文本内容编码为Emoji表情符号;同时也可以将编码后的Emoji表情符号内容解码为文本。
举例:
明文:hello,world.123456
base16: 68656C6C6F2C776F726C642E313233343635
特征:大写字母(A-Z)和数字(0-9),不用‘=’补齐。
base32: NBSWY3DPFR3W64TMMQXDCMRTGQ3DK===
特征:大写字母(A-Z)和数字(2-7),不满5的倍数,用‘=’补齐。
base64: aGVsbG8sd29ybGQuMTIzNDY1
特征:大小写字母(A-Z,a-z)和数字(0-9)以及特殊字符‘+’,‘/’,不满3的倍数,用‘=’补齐。
base58: 2smDFYXWKE8vc8XA8dadEYcSqcQb
特征:相比Base64,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及"+"和"/"符号,最主要的是后面不会出现'='。
base85: BOu!rDst>tGAhM<A1fSl1GgsI
特征:特点是奇怪的字符比较多,但是很难出现等号
明文:hello,world.123456
base91: TPwJh>go2Tv!_,aRA2IbLmA
特征:由91个字符(0-9,a-z,A-Z,!#$%&()*+,./:;<=>?@[]^_`{|}~”)组成
不支持中文。
base100: ????????????????????????????????????????????????????????????????????????????????
特征:就是一堆Emoji表情
在线编码
base64
https://www.qqxiuzi.cn/bianma/base64.htm
https://icyberchef.com/#recipe=To_Base64('A-Za-z0-9%2B/%3D')
https://baiy.github.io/Ctool/tool.html#/tool/base64
http://www.hiencode.com/base64.html
base32
https://www.qqxiuzi.cn/bianma/base.php
base16
https://www.qqxiuzi.cn/bianma/base.php?type=16
base58
http://www.atoolbox.net/Tool.php?Id=932
http://www.hiencode.com/base58w.html
base85
http://www.atoolbox.net/Tool.php?Id=934
http://www.hiencode.com/base85.html
base91
http://www.hiencode.com/base91.html
base100
http://www.atoolbox.net/Tool.php?Id=936
Base64:
tool.oschina.net
www.sojson.com
base64.us
Base58:www.metools.info
MD5、SHA1、HMAC、NTLM等类似加密型
1、MD5
简述:
一般MD5值是32位由数字“0-9”和字母“a-f”所组成的字符串,字母大小写统一;如果出现这个范围以外的字符说明这可能是个错误的md5值,就没必要再拿去解密了。
16位值是取的是8~24位。
特征:
有固定长度,一般是32位或者16位
由数字“0-9”和字母“a-f”组成
md5的三个特征:
\1. 确定性:一个原始数据的MD5值是唯一的,同一个原始数据不可能会计算出多个不同的MD5值。 \2. 碰撞性:原始数据与其MD5值并不是一一对应的,有可能多个原始数据计算出来的MD5值是一样的,这就是碰撞。 \3. 不可逆:也就是说如果告诉你一个MD5值,你是无法通过它还原出它的原始数据的,这不是你的技术不够牛,这是由它的算法所决定的。因为根据第4点,一个给定的MD5值是可能对应多个原始数据的,并且理论上讲是可以对应无限多个原始数据,所有无法确定到底是由哪个原始数据产生的。
举例:
明文:hello,world.123456
md5(hello,world.123456,32) = 5189503aae1b1c0a6fbf7ea9e3128ab0
md5(hello,world.123456,16) = ae1b1c0a6fbf7ea9
在线加解密
https://www.cmd5.com/
https://www.somd5.com/
http://www.hiencode.com/hash.html
www.cmd5.com(带批量解密工具)
www.somd5.com
cmd5.la
pmd5.com
www.ttmd5.com(带批量解密工具)
2、SHA1
简述
SHA1是一种密码散列函数,SHA1可以生成一个被称为消息摘要的160位,20字节的散列值,散列值通常的呈现形式为40位十六进制数。这种加密和MD5类似。
特征:
有固定长度,为40位的字符串
举例:
明文:hello,world.123456
sha1(hello,world.123456)= 0179303b8f08fbc3d16cd23a4be5828790e12375
在线加解密
https://tool.oschina.net/encrypt?type=2
http://www.hiencode.com/hash.html
https://baiy.github.io/Ctool/tool.html#/tool/hash
3、HMAC
简述:
HMAC (Hash-based Message Authentication Code) 常用于接口签名验证,这种算法就是在前两种加密的基础上引入了秘钥,而秘钥又只有传输双方才知道,所以基本上是破解不了的 。
特征:
和MD5类似,但是有秘钥。
举例:
在线加解密:
http://encode.chahuo.com/
4、NTLM
简述:
这种加密是Windows的哈希密码,是 Windows NT 早期版本的标准安全协议。与它相同的还有Domain Cached Credentials(域哈希)。
在线解密:
https://www.jisuan.mobi/p11BbzHum6b3uyJW.html
5、类似加密穷举
| # | 算法 | 长度 | | ---- | ------------------------- | ------------------------------------------------ | | 1 | md5 | 32/16 | | 2 | sha1 | 40 | | 3 | sha256 | 64 | | 4 | sha512 | 128 | | 5 | adler32 | 8 | | 6 | crc32 | 8 | | 7 | crc32b | 8 | | 8 | fnv132 | 8 | | 9 | fnv164 | 16 | | 10 | fnv1a32 | 8 | | 11 | fnv1a64 | 16 | | 12 | gost | 64 | | 13 | gost-crypto | 64 | | 14 | haval128,3 | 32 | | 15 | haval128,4 | 32 | | 16 | haval128,5 | 32 | | 17 | haval160,3 | 40 | | 18 | haval160,4 | 40 | | 19 | haval160,5 | 40 | | 20 | haval192,3 | 48 | | 21 | haval192,4 | 48 | | 22 | haval192,5 | 48 | | 23 | haval224,3 | 56 | | 24 | haval224,4 | 56 | | 25 | haval224,5 | 56 | | 26 | haval256,3 | 64 | | 27 | haval256,4 | 64 | | 28 | haval256,5 | 64 | | 29 | joaat | 8 | | 30 | md2 | 32 | | 31 | md4 | 32 | | 32 | ripemd128 | 32 | | 33 | ripemd160 | 40 | | 34 | ripemd256 | 64 | | 35 | ripemd320 | 80 | | 36 | sha224 | 56 | | 37 | sha3-224 | 56 | | 38 | sha3-256 | 64 | | 39 | sha3-384 | 96 | | 40 | sha3-512 | 128 | | 41 | sha384 | 96 | | 42 | sha512/224 | 56 | | 43 | sha512/256 | 64 | | 44 | snefru | 64 | | 45 | snefru256 | 64 | | 46 | tiger128,3 | 32 | | 47 | tiger128,4 | 32 | | 48 | tiger160,3 | 40 | | 49 | tiger160,4 | 40 | | 50 | tiger192,3 | 48 | | 51 | tiger192,4 | 48 | | 52 | whirlpool | 128 | | 53 | mysql | 老MYSQL数据库用的,16位,且第1位和第7位必须为0-8 | | 54 | mysql5 | 40 | | 55 | NTLM | 32 | | 56 | Domain Cached Credentials | 32 |
AES、DES、RC4、Rabbit、3DES型加密
简述:
以上都是非对称性加密算法,就是引入了密钥,密文特征与Base64类似,
在线解密:
https://www.sojson.com/encrypt_aes.html
Unicode编码
简述:
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它用两个字节来编码一个字符,字符编码一般用十六进制来表示.
可以说Unicode与HTML实体编码是一个东西
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。
举例:
Unicode有以下四种编码方式:
明文:hello,world.
&#x [hex]:hello,world.&# [hex]:hello,world.\u [hex]:\U0068\U0065\U006C\U006C\U006F\U002C\U0077\U006F\U0072\U006C\U0064\U002E\u+ [hex]:\U+0068\U+0065\U+006C\U+006C\U+006F\U+FF0C\U+0077\U+006F\U+0072\U+006C\U+0064\U+002E
在线编码:
http://www.mxcz.net/tools/Unicode.aspxhttp://www.msxindl.com/tools/unicode16.asp[url]https://www.sojson.com/unicode.htmlhttps://tool.chinaz.com/tools/unicode.aspxhttp://www.hiencode.com/cencode.htmlhttps://baiy.github.io/Ctool/tool.html#/tool/unicodehttps://icyberchef.com/#recipe=Text_Encoding_Brute_Force[/url]('Encode')
HTML实体编码
简述:
字符实体是用一个编号写入HTML代码中来代替一个字符,在使用浏览器访问网页时会将这个编号解析还原为字符以供阅读。
字符实体是用一个编号写入HTML代码中来代替一个字符,在使用浏览器访问网页时会将这个编号解析还原为字符以供阅读。
这么做的目的主要有两个:
1、解决HTML代码编写中的一些问题。例如需要在网页上显示小于号(<)和大于号(>),由于它们是HTML的预留标签,可能会被误解析。这时就需要将小于号和大于号写成字符实体:
小于号这样写:< 或 <
大于号这样写:> 或 >
前面的写法称为实体名称,后面的写法则是实体编号。ISO-8859-1字符集(西欧语言)中两百多个字符设定了实体名称,而对于其它所有字符都可以用实体编号来代替。
2、网页编码采用了特定语言的编码,却需要显示来自其它语言的字符。例如,网页编码采用了西欧语言ISO-8859-1,却要在网页中显示中文,这时必须将中文字符以实体形式写入HTML代码中。
举例:
明文:hello,world.十进制:hello,world.十六进制:hello,world.
在线加解密:
https://www.toolzl.com/tools/htmlende.htmlhttps://www.qqxiuzi.cn/bianma/zifushiti.phpUnicode:www.sojson.com16进制Unicode:www.msxindl.comHTML字符实体:www.qqxiuzi.cn
Escape、Unescape编码(%u)
简述:
Escape/Unescape加密解码/编码解码,又叫%u编码,其实就是字符对应UTF-16 16进制表示方式前面加%u。Unescape解码/解密,就是去掉"%u"后,将16进制字符还原后,由utf-16转码到自己目标字符。如:字符“中”,UTF-16BE是:“6d93”,因此Escape是“%u6d93”,反之也一样!
Escape/Unescape加密解码/编码解码,又叫%u编码,从以往经验看编码字符串出现有"u",它是unicode编码,那么Escape编码采用是那一种unicode实现形式呢。其实是UTF-16BE模式。这样一来问题非常简单了。 Escape编码/加密,就是字符对应UTF-16 16进制表示方式前面加%u。Unescape解码/解密,就是去掉"%u"后,将16进制字符还原后,由utf-16转码到自己目标字符。如:字符“中”,UTF-16BE是:“6d93”,因此Escape是“%u6d93”,反之也一样!因为目前%字符,常用作URL编码,所以%u这样编码已经逐渐被废弃了!
基本类型只对汉字进行编码,复杂类型是所有字符均可
举例:
明文:hello,world.密文:%u0068%u0065%u006c%u006c%u006f%uff0c%u0077%u006f%u0072%u006c%u0064%u002e
在线加解密:
http://web.chacuo.net/charsetescape/
URL编码
简述:
url编码又叫百分号编码,是统一资源定位(URL)编码方式。URL地址(常说网址)规定了常用地数字,字母可以直接使用,另外一批作为特殊用户字符也可以直接用(/,等),剩下的其它所有字符必须通过%xx编码处理。现在已经成为一种规范了,基本所有程序语言都有这种编码,如js:有encodeURI、encodeURIComponent,PHP有 urlencode、urldecode等。编码方法很简单,在该字节ascii码的的16进制字符前面加%. 如 空格字符,ascii码是32,对应16进制是'20',那么urlencode编码结果是:%20。
这两种加密的密文是一样的,不同的是当你用url编码网站时是不会把http进行编码的,而Hex编码则全部转化了
encodeURIComponent() 函数 与 encodeURI() 函数的区别
请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。
特征:
编码前面都有%
在线加解密:
http://web.chacuo.net/charseturlencode
Hex编码
简述:
Hex 全称 是Intel HEX。Hex文件是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。在Intel HEX文件中,每一行包含一个HEX记录。这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。
特征:
十六进制(Hexadecimal)
它是计算机中数据的一种表示方法,由0-9,A-F组 成,字母不区分大小写。
与10进制的对应关系是:0-9不变,A-F对应10-15。
举例:
明文:hello,world.密文(带%):%68%65%6c%6c%6f%ef%bc%8c%77%6f%72%6c%64%2e密文(不带%):68656C6C6FEFBC8C776F726C642E
在线加解密:
https://www.107000.com/T-Hexhttp://stool.chinaz.com/hexHex编码:https://www.107000.com/T-HexURL 编码:https://www.sojson.com/encodeurl.html
js专用加密
1、JS颜文字加密
特征:
一堆颜文字构成的js代码,在F12中可直接解密执行
在线加密:
https://utf-8.jp/public/aaencode.html
解密在F12的console中
2、Jother编码
简述:
jother是一种运用于javascript语言中利用少量字符构造精简的匿名函数方法对于字符串进行的编码方式。
特征:
只用 ! + ( ) [ ] { } 这八个字符就能完成对任意字符串的编码。可在F12中解密执行
在线解密:
3、JSFuck编码
特征:
与jother很像,只是少了{ }
在线加密:
http://www.jsfuck.com/
解密在F12的console中
Quoted-printable编码
简述:
它是多用途互联网邮件扩展(MIME) 一种实现方式。有时候我们可以邮件头里面能够看到这样的编码;
特征:
任何一个8位的字节值可编码为3个字符:一个等号”=”后跟随两个十六进制数字(0–9或A–F)表示该字节的数值.
这种编码常用与邮件处理,只能对汉字进行编码,特征是=加两个大写字母或数字组合
举例:
明文:天上掉下了个猪八戒密文:=E5=A4=A9=E4=B8=8A=E6=8E=89=E4=B8=8B=E4=BA=86=E4=B8=AA=E7=8C=AA=E5=85=AB=E6=88=92
在线编码:
http://www.mxcz.net/tools/QuotedPrintable.aspx
XXencode
简述:
XXencode将输入文本以每三个字节为单位进行编码。如果最后剩下的资料少于三个字节,不够的部份用零补齐。这三个字节共有24个Bit,以6bit为单位分为4个组,每个组以十进制来表示所出现的数值只会落在0到63之间。以所对应值的位置字符代替。
特征:
字符范围是:
0-9,A-Z,a-z,
一共64个字符。跟base64打印字符相比,就是UUencode多一个“-” 字符,少一个”/” 字符。
举例:
明文:hello,world.密文:BO4JgP4yXf5RjQalY9U++
在线加解密:
http://web.chacuo.net/charsetxxencode
UUencode
简述:
UUencode是一种二进制到文字的编码,最早在unix邮件系统中使用,全称:Unix-to-Unix encoding,UUencode将输入文本以每三个字节为单位进行编码,如果最后剩下的资料少于三个字节,不够的部份用零补齐。三个字节共有24个Bit,以6-bit为单位分为4个组,每个组以十进制来表示所出现的字节的数值。这个数值只会落在0到63之间。然后将每个数加上32,所产生的结果刚好落在ASCII字符集中可打印字符(32-空白…95-底线)的范围之中。
举例:
明文:hello,world.密文:,:&5L;&\L=V]R;&0N
在线解密&工具:
http://web.chacuo.net/charsetxxencodehttps://www.qqxiuzi.cn/bianma/uuencode.php
aaencode编码
特征:
将JS代码转换成常用的网络表情
在线加解密:
http://www.atoolbox.net/Tool.php?Id=703https://www.qtool.net/decode[url]https://utf-8.jp/public/aaencode.html[/url]
jjencode编码
特征:
将JS代码转换成只有符号的字符串
在线加解密:
http://www.atoolbox.net/Tool.php?Id=704https://www.qtool.net/decode
brainfuck编码
简述:
Brainfuck是一种极小化的计算机语言,按照"Turing complete(完整图灵机)"思想设计的语言,它的主要设计思路是:用最小的概念实现一种“简单”的语言。
特征:
BrainFuck 语言只有八种符号,所有的操作都由这八种符号 (> < + - . , [ ]) 的组合来完成。
举例:
明文:hello,world.密文:+++++ +++++ [->++ +++++ +++<] >++++ .---. +++++ ++..+ ++.<+ +++++ ++[->----- ---<] >---. <++++ ++++[ ->+++ +++++ <]>++ +++++ ++++. ----- ---.+++.-- ----. ----- ---.< +++++ ++[-> ----- --<]> ----- .<
在线加解密:
https://www.splitbrain.org/services/ookhttps://www.nayuki.io/page/brainfuck-interpreter-javascript
莫尔斯电码
简述:
摩尔斯电码(Morse Code)是由美国人萨缪尔·摩尔斯在1836年发明的一种时通时断的且通过不同的排列顺序来表达不同英文字母、数字和标点符号的信号代码,摩尔斯电码主要由以下5种它的代码组成:
\1. 点(.) \2. 划(-) \3. 每个字符间短的停顿(通常用空格表示停顿) \4. 每个词之间中等的停顿(通常用 / 划分) \5. 以及句子之间长的停顿
关于摩尔密码 | Morse Code
• 摩尔斯电码(Morse alphabet)(又译为摩斯电码)是一种时通时断的信号代码,这种信号代码通过不同的排列顺序来表达不同的英文字母、数字和标点符号等。 • 由美国人摩尔斯(Samuel Finley Breese Morse)于1837年发明,为摩尔斯电报机的发明(1835年)提供了条件。 • 摩尔密码加密的字符只有字符,数字,标点,不区分大小写,支持中文汉字 • 中文摩斯加密解密:本工具摩尔密码加密是互联网上唯一一个可以对中文进行摩斯编码的工具。
莫尔斯电码加密列表 | Morse Code List
一、26个字母的莫尔斯电码加密
| 字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 | | -------- | ------------ | -------- | ------------ | -------- | ------------ | -------- | ------------ | | A | .━ | B | ━ ... | C | ━ .━ . | D | ━ .. | | E | . | F | ..━ . | G | ━ ━ . | H | .... | | I | .. | J | .━ ━ ━ | K | ━ .━ | L | .━ .. | | M | ━ ━ | N | ━ . | O | ━ ━ ━ | P | .━ ━ . | | Q | ━ ━ .━ | R | .━ . | S | ... | T | ━ | | U | ..━ | V | ...━ | W | .━ ━ | X | ━ ..━ | | Y | ━ .━ ━ | Z | ━ ━ .. | | | | |
二、数字的莫尔斯电码加密
| 字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 | | -------- | ------------ | -------- | ------------ | -------- | ------------ | -------- | ------------ | | 0 | ━ ━ ━ ━ ━ | 1 | .━ ━ ━ ━ | 2 | ..━ ━ ━ | 3 | ...━ ━ | | 4 | ....━ | 5 | ..... | 6 | ━ .... | 7 | ━ ━ ... | | 8 | ━ ━ ━ .. | 9 | ━ ━ ━ ━ . | | | | |
三、标点符号的莫尔斯电码加密
| 字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 | | -------- | ------------ | -------- | ------------ | -------- | ------------- | -------- | ------------ | | . | .━ .━ .━ | : | ━ ━ ━ ... | , | ━ ━ ..━ ━ | ; | ━ .━ .━ . | | ? | ..━ ━ .. | = | ━ ...━ | ' | .━ ━ ━ ━ . | / | ━ ..━ . | | ! | ━ .━ .━ ━ | ━ | ━ ....━ | _ | ..━ ━ .━ | " | .━ ..━ . | | ( | ━ .━ ━ . | ) | ━ .━ ━ .━ | $ | ...━ ..━ | & | . ... | | @ | .━ ━ .━ . | | | | | | |
摩斯密码灯光求救 | Morse Code
• 摩斯密码编码简单清晰,二义性小,编码主要是由两个字符表示:"."、"-",一长一短,这在很多情况下应用很多,比如发送求救信号。电影《风声》中就是采用在衣服上缝出摩尔密码,将消息传播出去。 • 在利用摩尔密码灯光求救的时候,定义:灯光长亮为"-",灯光短量为".",那么就可以通过手电筒的开关来发送各种信息,例如求救信息。 • 如果灯光是按照“短亮 暗 短亮 暗 短亮 暗 长亮 暗 长亮 暗 长亮 暗 短亮 暗 短亮 暗 短亮”这个规律来显示的话那么它就意味是求救信号SOS。 • 因为SOS的摩尔编码为:··· --- ··· ,按照上面的规定即可进行灯光编码。这个编码其实非常简单,三短、三长、三短。 • 除了灯光之外,利用声音(两种区别的声音)也可以发出求救信号。这种求救方式是我们都应该进行了解的,也许在必要的时候就可以派上用场。
特征:
由 . - "空格" / 表示。
在线加解密:
http://www.hiencode.com/morse.html支持中文https://www.atool99.com/morse.php
社会主义编码
特征:
字符全部是社会主义核心价值观。
在线加解密:
https://sym233.github.io/core-va ... e.com/cvencode.html
与佛论禅
特征:
密文以”佛曰:如是我闻:”开头,密文一般是与关佛经的汉字
在线工具:
https://www.keyfc.net/bbs/tools/tudoucode.aspx
韩文编码
在线编码
https://www.qqxiuzi.cn/bianma/zhongrihan.phphttps://icyberchef.com/#recipe=Text_Encoding_Brute_Force('Encode')https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=hanwen웬후ퟳ듳삨뫅뗘뛾튻튻뛾뻅뛾죽룜웟냋뗘쇹룜쯄쇣쇹쯄룜뻅웟웟쾸룜뇘웟죽뛾뻅웟뗘쾸쯄쯄뻅튻폒듳삨뫅EUC Simplified Chinese (51936) 旗帜左大括号地二一一二九二三杠七八地六杠四零六四杠九七七细杠必七三二九七地细四四九一右大括号Simplified Chinese GBK (936) 旗帜左大括号地二一一二九二三杠七八地六杠四零六四杠九七七细杠必七三二九七地细四四九一右大括号Simplified Chinese GB2312 (20936) 旗帜左大括号地二一一二九二三杠七八地六杠四零六四杠九七七细杠必七三二九七地细四四九一右大括号MAC Simplified Chinese (GB 2312) (10008) 旗帜左大括号地二一一二九二三杠七八地六杠四零六四杠九七七细杠必七三二九七地细四四九一右大括号Simplified Chinese GB18030 (54936) 旗帜左大括号地二一一二九二三杠七八地六杠四零六四杠九七七细杠必七三二九七地细四四九一右大括号
引用链接
本文来自互联网搜索优秀安全博客内容+部分总结提炼,原文出处
|