密码学之常见编码ASCII、Base64、Unicode、URL、摩尔斯电码等通俗理解

  • ASCII
是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC646。
ASCII对照表 :https://baike.baidu.com/item/ASCII/309296?fr=aladdin(百度百科)
eg:编码前 : blog:Qi2456
      编码后:62 6c 6f 67 3A 51 69 32 34 35 36 (hex)

  • Base64
Base64是网络上最常见的用于传输8bit字节代码的编码方式之一。
特点:base64:大写字母A-Z,小写字母a-z,数字0-9以及+ /和=
编码实例:
eg:编码前 : blo
      编码后:Ymuv
1.先将原码转换为二进制:01100010 01101100 01101111
2.将3个8位二进制转换为6位二进制,6个一组,位数是6和8的公倍数,不足补×:011000 100110 110001101111
3.每个6位值都表示了从0~63之间的数字,对应base64字母表中的64个字符之一。得到的base64编码字符串是4个字符的字符串“Ymxv”。
base64编码表:https://sfault-image.b0.upaiyun.com/152/114/1521149307-56fdf529d29b6_articlex
base64填充:
    base64编码收到一个8位字节序列,将这个二进制序列流划分成6位的块。二进制序列有时不能正好平均地分为6位的块,在这种情况下,就在序列末尾填充零位,使二进制序列的长度成为24的倍数(6和8的最小公倍数)。
对已填充的二进制进行编码时,任何完全填充(不包括原始数组中的位)的6位组都有特殊的第65个符号"="表示。如果6位组是部分填充的,就将填充位设置为0.
eg:编码前 : blog
      编码后:YmxvZw==
1.先将原码转换为二进制:01100010 01101100 01101111 01100111
2.将8位二进制转换为6位二进制,6个一组:011000 100110 110001 101111 011001 11×××××××××× ××××××
3.每个6位值都表示了从0~63之间的数字,对应base64字母表中的64个字符之一。得到的base64编码字符串是4个字符的字符串“YmxvZw==”。
*扩展:base家族
base64(2 的6次方):大写字母A-Z,小写字母a-z,数字0-9以及+ /
base32(2 的5次方):大写字母A-Z 和 数字234567
base16(2 的4次方):数字0-9和大写字母A-F

  • Unicode

在计算机科学领域中,Unicode(统一码、万国码、单一码、标准万国码)是业界的一种标准,它可以使电脑得以呈现世界上数十种文字的系统。
eg:编码前 : blog:Qi2456
      编码后: blog:Qi2456

  • URL
URL编码又叫百分号编码,是统一资源定位(URL)编码方式。URL地址(常说网址)规定了常用地数字,字母可以直接使用,另外一批作为特殊用户字符也可以直接用(/,:@等),剩下的其它所有字符必须通过%xx编码处。
统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

结构:

基本URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名,如“协议://授权/路径?查询”。完整的、带有授权部分的普通统一资源标志符语法看上去如下:协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志
eg:百度搜索 :qiqi
URL:https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&ch=1&tn=78040160_26_pg&wd=qiqi&rsv_pq=a5646df90000a42a&rsv_t=6b6aQP9m+TFeYii5Y/r37cuBlX65xj6/dJuMROs1h3yH0fyZVmZMlXkd8nUX6hEcrvw5cYU&rqlang=cn&rsv_enter=1&rsv_sug3=8&rsv_sug1=5&rsv_sug7=100&rsv_sug2=0&inputT=3484&rsv_sug4=4417

  • UUencode
uuencode是将二进制转换为文本文件的过程,转换后的文件可以通过纯文本e-mail进行传输,在接收方对该文件进行uudecode,即将其转换为初始的二进制文件。
  • XXencode
XXencode编码,也是一个二进制字符转换为普通打印字符方法。跟UUencode编码原理方法很相似,唯独不同的是可打印字符不同。

  • 摩尔斯电码
摩尔斯电码由两种基本信号组成:短促的点信号“·”,读“滴”;保持一定时间的长信号“—”,读“嗒”。间隔时间:滴=1t,嗒=3t,滴嗒间=1t,字符间=3t,单词间=7t。
格式要求:可用空格或单斜杠/来分隔摩斯电码,但只可用一种,不可混用
摩尔斯电码表:https://gss0.baidu.com/-vo3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/c995d143ad4bd113d657c5f35bafa40f4afb055c.jpg
eg:编码前 : Morse is cool
      编码后:-- --- .-. ... . -....- .. ... -....- -.-. --- ---.-..
  • Escape/编码
Escape/加密解码/编码解码,又叫%u编码,采用UTF-16BE模式,Escape编码/加密,就是字符对应UTF-1616进制表示方式前面加%u。解码/解密,就是去掉"%u"后,将16进制字符还原后,由utf-16转码到自己目标字符。如:字符“中”,UTF-16BE是:“6d93”,因此Escape是“%u6d93”。
  • 敲击码
敲击码(Tap code)是一种以非常简单的方式对文本信息进行编码的方法。
敲击码是基于5×5方格波利比奥斯方阵来实现的,不同点是是用K字母被整合到C中。
   
  • HTML实体编码
详情了解:http://www.w3school.com.cn/html/html_jianjie.asp
  • 最后,该博客的某部分内容属于摘抄,如有雷同,请别介意~

你可能感兴趣的:(密码学)