其他分享
首页 > 其他分享> > base64编解码即使用

base64编解码即使用

作者:互联网

base64 编解码及使用

前言

大部分寻找 base64,只是为了使用而已,所以先说如何使用。
不用寻找相关的 base64 库,不用自己处理编解码,直接调用浏览器自身 API。既然减少完全不必要加载的 js 文件。

应用

  1. Base64 解码

    window.atob

例如:

window.atob('aGVsbG8gd29yZA==')
"hello word"
  1. Base64 编码

    window.btoa

例如:

window.btoa('hello word')
"aGVsbG8gd29yZA=="

就是这么简单!

兼容性: IE10+ 以后所有现代浏览器都支持,所以放弃 IE 吧!同时,不支持Unicode字符的编码, 需配合encodeURIComponent、decodeURIComponent来使用。


这是一条迷人的分割线


base64 是什么?

引用百度百科的话:

Base64 是网络上最常见的用于传输 8Bit 字节码的编码方式之一,Base64 就是一种基于 64 个可打印字符来表示二进制数据的方法。可查看 RFC2045 ~ RFC2049,上面有 MIME 的详细规范。
Base64 编码是从二进制到字符的过程,可用于在 HTTP 环境下传递较长的标识信息。采用 Base64 编码具有不可读性,需要解码后才能阅读。

有点拗口,即 base 是一种编码方式,不是加密,不是加密,不是加密。

白话:选出 64 个字符集(实际上 65 个, A-Z,a-z,0-9,+,/,再加垫字符 = ),并将内容按照一定的规则转换成字符集的字符。

索引表:

64 个 字符

A~Z -> 0~25
a~z -> 26~51
0~9 -> 52~61
+ -> 62
- -> 63

编码规则:

  1. 每三个字节为一组,一共是 24 个二进制位。

  2. 将 24 个二进制位分为四小组,每小组 6 个二进制位。

  3. 在每小组前面加上 00,构成 32 为二进制,即 4 个字节。

例如:

"Cat"

C  ASCII 十进制:67  二进制:0100 0011
a  ASCII 十进制:97  二进制:0110 0001
t  ASCII 十进制:116 二进制:0111 0100

合起来为:0100 0011 0110 0001 0111 0100
分为四组:010000 110110 000101 110100
添加前缀:00010000 00110110 00000101 00110100
对应的十进制值为:16 54 5 54

对应上面的索引表:Q2F0

其他字符自询搜索 ASCII 表

解码

解码其实就是一个逆推的过程。

  1. 每4个字符为一组,查找字符其索引值。

  2. 将其索引值,转为二进制,并将每个二进制前面的00去掉

  3. 将剩下的24位二进制转为分为3份,组成3个字节

  4. 查找ASCII表,组成字符串。

标签:编解码,Base64,字节,二进制,base64,0100,使用,ASCII,十进制
来源: https://www.cnblogs.com/lsAxy/p/14864753.html