URL编码/解码详解
当 URL 路径或者查询参数中,带有中文或者特殊字符的时候,就需要对 URL 进行编码(采用十六进制编码格式)。URL 编码的原则是使用安全字符去表示那些不安全的字符。
安全字符,指的是没有特殊用途或者特殊意义的字符。
URL基本组成
URL 是由一些简单的组件构成,比如协议、域名、端口号、路径和查询字符串等,示例如下:
http://www.ccc.net/index?param=10
1
路径和查询字符串之间使用问号隔开。上述示例的域名为 www.ccc.net,路径为 index,查询字符串为 param=1。
URL 中规定了一些具有特殊意义的字符,常被用来分隔两个不同的 URL 组件,这些字符被称为保留字符。例如:
冒号:用于分隔协议和主机组件,斜杠用于分隔主机和路径
:用于分隔路径和查询参数等。
=用于表示查询参数中的键值对。
&符号用于分隔查询多个键值对。
其余常用的保留字符有:/ . … # @ $ + ; %
哪些字符需要编码
URL 之所以需要编码,是因为 URL 中的某些字符会引起歧义,比如 URL 查询参数中包含了”&”或者”%”就会造成服务器解析错误;再比如,URL 的编码格式采用的是 ASCII 码而非 Unicode 格式,这表明 URL 中不允许包含任何非 ASCII 字符(比如中文),否则就会造成 URL 解析错误。
URL 编码协议规定(RFC3986 协议):URL 中只允许使用 ASCII 字符集可以显示的字符,比如英文字母、数字、和- _ . ~ ! *这 6 个特殊字符。当在 URL 中使用不属于 ASCII 字符集的字符时,就要使用特殊的符号对该字符进行编码,比如空格需要用%20来表示。
除了无法显示的字符需要编码外,还需要对 URL 中的部分保留字符和不安全字符进行编码。下面列举了部分不安全字符:
[ ] < > " " { } | ^ * · ‘ ’ 等
摩尔斯电码是一种早期的数码化通信形式, 它依靠一系列的 点和划 来传递编码信息 ,它的代码包括五种:
- 点( · ):1 (读
“滴”
dit ,时间占据1t ) - 划(—):111 (读
“嗒”
dah ,时间占据3t ) - 字符内部的停顿(在点和划之间):0 (时间占据1t )
- 字符间停顿:000 ( 时间占据3t )
- 单词间的停顿:0000000 ( 时间占据7t )
点的长度(也就是上面的时间长度t)决定了发报的速度
举个例子
我们现在要发送 “M O R S E(空格) C O D E”
(morse code)这单词,通过查表可知,它应该是这样 —— ——— ·—· ··· · / —·—· ——— —·· ·
以上题看出是哪种加密后,都可以用一些在线解密工具解密,或直接扔进随波逐流的一键解密里面
标签:字符,buuctf,摩丝,编码,URL,解密,查询,ASCII From: https://www.cnblogs.com/zdytom/p/17018119.html