Xxencode编码,也是一个二进制字符转换为普通打印字符方法。跟UUencode编码原理方法很相似,唯独不同的是可打印字符不同。通个UUencode编码,我们知道它有个缺点就是,64个可打印字符中,有很多的特殊字符。而XXencode编码方法,对64个原字符有做规范。这里它有跟Base64类型了。都有指定可打印字符范围、及编号。Xxencode编码在上世纪后期,IBM大型机中得到很广泛的应用。现在逐渐被Base64编码转换方法所取代了。 Xxencode编码原理 XXencode将输入文本以每三个字节为单位进行编码。如果最后剩下的资料少于三个字节,不够的部份用零补齐。这三个字节共有24个Bit,以6bit为单位分为4个组,每个组以十进制来表示所出现的数值只会落在0到63之间。以所...
阅读全文
UUencode编码起先用在unix网络中,先是Unix系统下将二进制的资料借由uucp邮件系统传输的一个编码程式,也是一种二进制到文字的编码。不属于MIME编码中一员。它也是定义了用可打印字符表示二进制文字一种方法,并不是一种新的编码集合。主要解决,二进制字符在传输、存储中问题。它早期在电子邮件中使用较多,最近这些年来基本上被MIME 中Base64所取代了。E-mail中一般采用UU、MIME、BINHEX三种编码标准! 我想,了解下这种编码将二进制字符转换为可打印字符实现思路!对我们以后做类似处理工作,应该会有很多的启示。 UUencode编码过程 Uuencode将输入资料以每三个字节为单位进行编码,如此重复进行。如果最后剩下的资料少于三个字节,不够的部份...
阅读全文
Base64编码,是我们程序开发中经常使用到的编码方法。它是一种基于用64个可打印字符来表示二进制数据的表示方法。它通常用作存储、传输一些二进制数据编码方法!也是MIME(多用途互联网邮件扩展,主要用作电子邮件标准)中一种可打印字符表示二进制数据的常见编码方法!它其实只是定义用可打印字符传输内容一种方法,并不会产生新的字符集!有时候,我们学习转换的思路后,我们其实也可以结合自己的实际需要,构造一些自己接口定义编码方式。好了,我们一起看看,它的转换思路吧! Base64实现转换原理 它是用64个可打印字符表示二进制所有数据方法。由于2的6次方等于64,所以可以用每6个位元为一个单元,对应某个可打印字符。我们知道三个字节有2...
阅读全文
Quoted-printable 可译为“可打印字符引用编码”、“使用可打印字符的编码”,我们收邮件,查看信件原始信息,经常会看到这种类型的编码! 最多时候,我们在邮件头里面能够看到这样的编码!Content-Transfer-Encoding:quoted-printable
它是多用途互联网邮件扩展(MIME) 一种实现方式。其中MIME是一个互联网标准,它扩展了电子邮件标准,致力于使其能够支持非ASCII字符、二进制格式附件等多种格式的邮件消息。目前http协议中,很多采用MIME框架!quoted-printable 就是说用一些可打印常用字符,表示一个字节(8位)中所有非打印字符方法!
Quoted-printable编码方法
任何一个8位的字节值可编码为3个字符:一个等号"="后跟随两个十六进制数字(0...
阅读全文
这些编码,早些时候在一些应用软件中经常看到,估计很多朋友也看到了,这些编码了!
从这个图,我们可以看到这类编码应用很广泛,那么我们一起看看,iso-8859-1字符集,到底是什么样字符集,有那些字符!为什么,它应用可以这么广泛!
计算机上面流行第一个字符集,是ascii码,是0-127 一个128字符。每个字符在里面有个对应编号,分别是0-127。如果用二进制表示,刚好是7位。这个字符集,在前期表示英文字符已经足够。后来,随着计算机普及,越来越多国家(欧洲),开始应用计算机,他们发现7位,共128字符。已经不能描述他们常用的字符了。因此想到要兼容ascii字符集,就指定了扩展ASCII字符集。最多是0-255,256个字符。其中0-127 128字符及位...
阅读全文
上一节,我们分析了。选择不同编码可能会导致程序带来本身潜在的漏洞。这次我们以GBK编码为例,看看怎么样通过该编码注入到系统中。目前很多开源系统都存在类似的注入问题。我们先来,从一个Demo开始! GBK字符集漏洞注入原理 <?php
$u=isset($_GET['u'])? $_GET['u']:'';
$u=addslashes($u);
$sql = "select * from user where user='$u'";
以上是我们写的一个测试例子(GBK编码),现在很多开源系统,比较少的进行统一参数过滤,有时候为了防止注入,就直接对参数进行转义处理。我们看看,这样一个例子,我们怎么样注入进系统!
步骤
备注
1.传入值%D5%27 or 1...
阅读全文
很多时候,一个web站点,选择什么样的字符编码,我们不会太过在意的。象中文网站,我们一般用gb2312,gbk,gb18030,也可以用utf-8。但是,可能我们不知道,选择不同编码,可能因此导致程序本身设计缺陷。 多字节编码由来 我们先来看看最常用的,最小字符集是ascii,对应的二级制可以表示为:00-7F 编码 。它也是我们计算机使用最早通用的字符集。前期几乎可以表示所有英文字符。后来,更多使用计算机国家加入后,我们就想在计算机中表示中文字符。我们知道常见中文就有7000多个字符。ascii码就只有128字符,只有0-127编码位置,远远不够用了。因此,我们就开始制作更大字符集,并且保证兼容ascii编码。要支持更多字符,选择更大字符集。我们只能...
阅读全文
最近工作中,时不时有用户输入自己真实姓名,然后申请银行提款时候,遇到一些特殊字符。而输入错误,提款失败!其中最多就是少数名字,姓名中的点字符。如:某某·李四,经常有人输入:某某.李四 或 某某・李四。其中:”·・” 这2个中间点很容易输入错误。都是中间点,一个大一个细。 那一个才是中文姓名中间点呢? 作为技术开发人员,我们有办法知道,到底那个点才是中文中间分割点。因为,这些都是常见姓名字符,因此,我们只要检测下,这2个字符对应在gb2312字符集中,字符编码即可。对于计算机而言,无论多怪的字符,看起来还怎么像,其实计算机本质去区分,是按照字符在字符集中,对应编码(字符编码)来保存、传输的。 因此,...
阅读全文