几种常用的编码方式

访客3年前关于黑客接单1096

最近在做加解密这块的开发,使用频率更高的就是 Nodejs 的 crypto 模块了,中心泛起了很多种差别的编码方式。一直对这些编码方式处于熟练拼写的状态,然则到底有什么区别处于一知半解,借此机会正好整理下这之间的关系。


BINARY

这个应该不用先容了,在计算机中,所有的数据在存储和运算时都要使用二进制数示意(由于计算机用高电平和低电平划分示意1和0)。每一个二进制位( bit )有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节( byte )。


ASCII

由于计算机处置的数据是用二进制示意,例如,像a、b、c、d这样的52个字母(包罗大写)以及0、1等数字另有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来示意,而具体用哪些二进制数字示意哪个符号,固然每个人都可以约定自己的一套(这就叫编码),而人人若是要想相互通讯而不造成杂乱,那么人人就必须使用相同的编码规则,于是美国有关的尺度化组织就出台了 ASCII 编码,统一划定了常用符号用哪些二进制数来示意。

ASCII 码一共划定了128个字符的编码, 字符 ascii 码对照表 。这128个符号(包罗32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的一位统一划定为0。


UNICODE

由于计算机只能处置二进制,若是要处置文本,就必须先把文本转换为二进制才气处置。最早的计算机在设计时接纳8个比特( bit )作为一个字节( byte ),以是,一个字节能示意的更大的整数就是255(二进制11111111 = 十进制255),0 - 255被用来示意大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,好比大写字母A的编码是65,小写字母z的编码是122。 若是要示意中文,显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,以是,中国制订了 GB2312 编码,用来把中文编进去。 类似的,日文和韩文等其他语言也有这个问题。为了统一所有文字的编码, Unicode 应运而生。 Unicode 把所有语言都统一到一套编码里,这样就不会再有乱码问题了。


UTF-8

UTF-8(8-bit Unicode Transformation Format) 是一种针对 Unicode 的可变长度字符编码,又称万国码,由 Ken Thompson 于1992年建立。现在已经尺度化为 RFC 3629 。UTF-8用1到6个字节编码 Unicode 字符。用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。

UTF-8 编码规则:若是只有一个字节则其更高二进制位为0;若是是多字节,其之一个字节从更高位更先,延续的二进制位值为1的个数决议了其编码的字节数,其余各字节均以10开头。 UTF-8 转换表示意如下:

0000 0000-0000 007F

0~7

0xxxxxxx

1

0000 0080-0000 07FF

8~11

110xxxxx 10xxxxxx

2

0000 0800-0000 FFFF

12~16

1110xxxx 10xxxxxx 10xxxxxx

3

0001 0000-0010 FFFF

17~21

11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

4


BASE64

所谓 Base64 ,就是选出64个字符: 小写字母 a-z 、大写字母 A-Z 、数字0-9、符号"+"、"/"(再加上作为垫字的"=",实际上是65个字符)作为一个基本字符集。然后,其他所有符号都转换成这个字符集中的字符。

具体来说,转换方式可以分为四步。

  • 之一步,将每三个字节作为一组,一共是24个二进制位。
  • 第二步,将这24个二进制位分为四组,每个组有6个二进制位。
  • 第三步,在每组前面加一组00,扩展成32个二进制位,即四个字节。
  • 第四步,凭据 下面的 base64 编码索引表,获得扩展后的每个字节的对应符号,这就是 Base64 的编码值。

若是只有两个字节 根据上面的规则,将16位划分为三组,最后一组除了前面加一组00,末尾也加一组00,根据索引表获得编码值后,在末尾加上一个 = .

若是只有一个字节 根据上面的规则,将8位划分为两组,最后一组除了前面加00,末尾加两组00,根据索引表获得编码值后,在末尾加上两个 = .

Base64 编码索引表

   0 A  17 R   34 i   51 z

  1 B  18 S   35 j   52 0

  2 C  19 T   36 k   53 1

  3 D  20 U   37 l   54 2

  4 E  21 V   38 m   55 3

  5 F  22 W   39 n   56 4

  6 G  23 X   40 o   57 5

  7 H  24 Y   41 p   58 6

  8 I  25 Z   42 q   59 7

  9 J  26 a   43 r   60 8

  10 K  27 b   44 s   61 9

  11 L  28 c   45 t   62 +

  12 M  29 d   46 u   63 /

  13 N  30 e   47 v

  14 O  31 f   48 w   

  15 P  32 g   49 x

  16 Q  33 h   50 y


HEX

十六进制的简写, 在数学中是一种逢16进1的进位制。一样平常用数字0到9和字母A到F示意,其中:A~F 相当于十进制的 10~15 ,这些称作十六进制数字。 例如十进制数57,在二进制写作111001,在16进制写作39。


思源资源网:分类流动

1.阿里云: 本站现在使用的是阿里云主机,平安/可靠/稳固。点击领取2000米代金券、领会最新阿里云产物的种种优惠流动点击进入

相关文章

怎么能秘密查询老公在宾馆的开房记录?竟然这么

近日,研究人员在美国黑帽大会2018上展示了一个新的漏洞利用程序,可让攻击者远程入侵苹果Mac电脑。 苹果Mac新MDM漏洞可招致远程攻击   据悉,利用该漏洞黑客可能会在用户首次登录新M...

黑客帝国动画版(黑客帝国动画版豆瓣)

黑客帝国动画版(黑客帝国动画版豆瓣)

本文导读目录: 1、谁有黑客帝国动画版全集的资源啊? 2、黑客帝国动画版剧情介绍? 3、黑客帝国动画版和电影版的区别 4、求 黑客帝国动画版 百度网盘免费资源链接,谢谢 5、黑客帝国动...

什么是背包客(背包客怎么赚钱)

什么是背包客(背包客怎么赚钱)

背包客,主要是以群体登山、徒步、探险等寻找刺激的人为主,以少花钱,看别人看不到的风景,挑战自己,挑战极限等为目的。 在生活中,很多人谈到背包客羡慕不已,心里暗暗发誓,自己这辈子至少要做一次背包客...

查聊天记录查询怎样查聊天记录如何查询聊天记录怎么查看聊天记录

查聊天记录查询怎样查聊天记录如何查询聊天记录怎么查看聊天记录尽管自打手机上、电脑上等智能家居产品面世至今,电视的应用越来越低,但假如家中沒有电视,应用起來就尤其不方便。由于这一缘故,很多人会把一台电视...

忘忧草看似名字很文艺,但它实际上就是? 蚂蚁庄园4月23日答案

忘忧草看似名字很文艺,但它实际上就是? 蚂蚁庄园4月23日答案

忘忧草看似名字很文艺,但它实际上就是?很多花有很多文艺的名字,但是实际上它们日常的名字和真实身份会让你大吃一惊。比如说忘忧草,听起来非常文艺,那么它实际上居然是一种菜。今天支付宝蚂蚁庄园2020年4月...

黑客帝国4预告片官网(黑客帝国4预告片下载)

黑客帝国4预告片官网(黑客帝国4预告片下载)

本文导读目录: 1、《黑客帝国4》首支预告发布,看完后你有哪些理解? 2、《黑客帝国4》曝光你发现哪些细节? 3、《黑客帝国4》中国内地宣布定档,这部影片主要讲述的是什么故事? 4、《黑客...