CTF中常见的编码,代码混淆及加、解密

本文详细介绍了CTF(Capture The Flag)挑战中常见的编码方式,如ASCII、URL、HTML实体、Base编码和Unicode,以及代码混淆技术,如jsfuck、brainfuck和Vbscript.encode。此外,还探讨了古典加密算法与现代密码学,包括对称加密、公钥密码和哈希函数,如RSA、DES和MD5。密码学在信息安全中的重要性不言而喻,学习者可以通过各种在线资源深入研究这一领域。
摘要由CSDN通过智能技术生成

其实刚开始我对编码与加密的概念区分的不是非常清楚,一度以为加密就是对信息进行编码,这是一种错误的观点。编码是将数据信息转化成一种固定格式的编码信息,而加密是为了保证信息传输的安全性,两者还是有区别的。接下来就给大家讲讲编码与加密、解密。
一,编码
编码是为了方便不同系统间的信息传输,将数据转化成固定格式的信息,通过编码可以得到原始信息。常见的编码我们都已经很熟悉了,比如ASCII编码、URL编码、HTML实体编码以及Base编码等。
1,ASCII编码
ASCII编码大致可以分作三部分组成:
第一部分是:ASCII非打印控制字符(参详ASCII码表中0-31);
第二部分是:ASCII打印字符,也就是CTF中常用到的转换;
第三部分是:扩展ASCII打印字符(详见 ASCII码表 二)。
例:easy—101 97 115 121

(ASCII表——来自百度百科)

(ASCII码表 二)
2,URL编码
又叫百分号编码,是统一资源定位编码方式。URL 地址(常说网址) 规定了常用地数字,字母可以直接使用,另外一批作为特殊用户字符也可以直接用(/,:@等),剩下的其它所有字符必须通过%xx 编码处理。编码方法很简单,在该字节 ascii 码的的 16 进制字符前面加%. 如空格字符,ascii 码是 32,对应16 进制是’20′,那么 urlencode 编码结果是:%20。
例:https://baike.baidu.com/item/ABC
URL转码: %68%74%74%70%73%3A%2F%2F%62%61%69%6B%65%2E%62%61%69%64%75%2E%63%6F%6D%2F%69%74%65%6D%2F%41%42%43
3,HTML实体编码
一些字符在 HTML 中是预留的,拥有特殊的含义,比如小于号‘<’用于定义 HTML 标签的开始。如果我们希望浏览器正确地显示这些字符,我们必须在 HTML 源码中插入字符实体。用一个编号写入HTML代码中来代替一个字符,在使用浏览器访问网页时会将这个编号解析还原为字符以供阅读。


(来自http://www.w3school.com.cn/html/html_entities.asp
例:easy——&#101;&#97;&#115;&#121
4,Base编码
Base家族主要有Base16、Base32、Base64。Base64由大小写字母和数字,+/组成(=号用作填充字符),Base32则是只有大写字母和234567。其中Base64/32是网络上最常见的用于传输8Bit字节代码的编码方式之一。Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。Base64编码保证了二进制数据的安全。


例:Base64:easy—ZWFzeQ==
(Base64的代码实现:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值