密码学编码(一)ASCII编码

  1. ASCII
  • 我的密码学入门是从编码开始,逐步认识到各种密码类型,我会逐步总结。
  • 今天先介绍ASCII,base系列等编码

ASCII

  • 计算机的最早发明者是美国人,所以他们首要面临的问题就是如何让机器能够将他们的文字,也就是拉丁字母与二进制相对应,然而在计算机出现早期,各个公司都创建了属于自己的一套编码规则,这给不同计算机之间的数据交换带来了极大困难。

  • ASCII的标准版本第一次发布于1967年,迄今为止共收录了128个字符,包含了基本的拉丁字母(英文字母)、阿拉伯数字(也就是1234567890)、标点符号(,.!等)、特殊符号(@#$%^&等)以及一些具有控制功能的字符(往往不会显示出来)。

  • 在ASCII编码中,大写字母、小写字母和阿拉伯数字都是连续分布的。

  • 连续分布的ASCII编码为程序员带来了极大方便,例如:当寻找某个字母的位置时,只需要记住A的ASCII编码,然后加上两者之间的间隔。

  • 扩展ASCII打印字符
  • 扩展的ASCII字符满足了对更多字符的需求.增加了128个字符.
  • 即使有了这些更多的字符,许多语言还是包含无法压缩到256个字符中的符号.因此,出现了一些ASCII的变体来囊括地区性字符和符号.

  • 在平时遇到大批量的ASCII编码需要转换时,可进入下列在线网站 :ASCII编码

  • 除此以外,还可以将二进制,十六进制直接转换为ASCII编码(本质上是将其他进制转换为十进制,再将十进制与ASCII编码一一对应)

  • 下面附上python3脚本(将十六进制转换为ASCII)

1
2
3
4
5
6
from binascii import a2b_hex

h =input()
p1 = bytes(h,'utf-8')
p2 = a2b_hex(p1)
print(p2.decode())
  • 下一节我们讲解base系列编码

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1259742453@qq.com

💰

×

Help us with donation