|
常见编码
软件开发中常常碰到各种编码转换,下面介绍下常用的几种编码格式。Unicode编码Escape/Unescape编码HTML实体编码ASCII编码Base64/32/16编码shellcode编码Quoted-printable编码UUencode编码URL编码Unicode编码
Unicode 是一种全球字符编码标准,简化了软件本地化并改进了多语言文本处理。 最常用的如UTF-8,UTF-16等.。详见:https://www.unicode.org/standard/standard.html。
Escape/Unescape编码
Escape/Unescape加密解码/编码解码,又叫%u编码,采用UTF-16BE模式,Escape编码/加密,就是字符对应UTF-16 16进制表示方式前面加%u。
Unescape解码/解密,就是去掉%u后,将16进制字符还原后,由utf-16转码到自己目标字符。
如:字符中,UTF-16BE是:6d93,因此Escape是%u6d93。
HTML实体编码
以连字符号(&)打头、以分号(;)结尾的字符串。用以显示不可见字符及保留字符(如 HTML 标签)。
如用 表示空格。
ASCII编码
最广泛的符号编码,用7个比特组成,用十进制中0~127表示对应十六进制0x00~0x7F,每个值对应一个字符。
Base64/32/16编码
程序员都不陌生了,最常见的编码之一。
shellcode编码
shellcode为16进制的机器码,因为经常让攻击者获得shell而得名。shellcode常常使用机器语言编写。
Quoted-printable编码
可打印字符引用编码,多用途互联网邮件扩展(MIME)一种实现方式,一般在邮件头可见。任何一个8位的字节可被编码为3个字符:一个等号后跟随两个十六进制(0-9或A-F)表示该字节的数值。
UUencode编码
uuencode 编码方式用于将任意的二进制文件转换为文本文件,比如email.转换后的文件中仅包含可打印字符。
uuencode 运算法则将连续的 3字节编码转换成 4字节(8-bit 到 6-bit)的可打印字符。
URL编码
将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式。
比如:空格ASCII码是32,对应16进制是20,那么urlencode编码结果是:%20
编码特征总结
名称
例子
特征总结
URL编码
%3D%231a
百分号,无百分号长度%2=0,只对符号中文用
Quoted-printable
=E5=9C
等号+hex
Base64
MTIxMg==
大小写一串,可能有=+
HTML实体
lt和gl等常见,参考实体表
UNICODE/Escape
u52a0u5bc6/%u00a0%u0068
U是特点,而且4位
UU编码
M5&AE(%U:6-K(&)R;W=N(&9O>
(‘%&*这类特殊字符,32-35之间的ASCII
|
|