Base64基本原理

article/2025/9/13 9:04:33

1.什么是Base64

Base64是一种基于64个可打印字符来表示二进制数据的编码方式,是从二进制数据到字符的过程。
原则上,计算机中所有内容都是二进制形式存储的,所以所有内容(包括文本、影音、图片等)都可以用base64来表示。

2.Base64编码原理

Base64编码之所以称为Base64,是因为其使用64个字符来对任意数据进行编码,同理有Base32、Base16编码。标准Base64编码使用的64个字符为:

clipboard.png

有点特殊的是最后两个字符,因对最后两个字符的选择不同,Base64编码又有很多变种,比如用于编码URL的Base64 URL编码。

Base64编码本质上是一种将二进制数据转成文本数据的方案。对于非二进制数据,是先将其转换成二进制形式,然后每连续6比特(2的6次方=64)计算其十进制值,根据该值在上面的索引表中找到对应的字符,最终得到一个文本字符串。

假设我们要对 Hello! 进行Base64编码,按照ASCII表,其转换过程如下图所示:

clipboard.png

可知 Hello! 的Base64编码结果为 SGVsbG8h,每3个原始字符经Base64编码成4个字符。那么,当原始字符串长度不能被3整除时,怎么办呢?

以 Hello!! 为例,其转换过程为:

clipboard.png

Hello!! Base64编码的结果为 SGVsbG8hIQAA。可见,不能被3整除时会采用来来补0的方式来完成编码。
需要注意的是:标准Base64编码通常用 = 字符来替换最后的 A,即编码结果为 SGVsbG8hIQ==。因为 = 字符并不在Base64编码索引表中,其意义在于结束符号,在Base64解码时遇到 = 时即可知道一个Base64编码字符串结束。

3.Base64编码应用

就前端而言,对于一些简单的图片,为了减少外部资源加载,降低页面加载时间,可以采用base64将图片编码成字符串,直接内嵌到页面中。这种内嵌方式的实现,得益于大部分浏览器对Data URI scheme特性的支持,该特性通常会在CSS设置背景图片时用到,其格式为:
background:url(data:文件类型;编码方式,编码后的文件内容);
也可通过img标签嵌入图片:
<img alt="base64 image" src="data:文件类型;编码方式,编码后的文件内容" />

下面说下具体使用方法(以icon图标为例):

  1. 下载或制作所需图标;
  2. 使用base64在线编码工具,将图标编码成字符串;
  3. 将得到的字符串复制到你的前端代码中使用(例如background:url(字符串))

4.适用场景

一般适用于比较小、色彩层次单一的图片(如icon图标),不要试图用于色彩丰富的较大图片,尽管能够实现展现,但由于编码后的字符串非常大,会明显增大HTML/CSS文件的大小,影响加载速度。

本文学习网上资料整理而来,仅供个人学习使用,部分内容仅代表个人理解及思考。
主要参考
http://blog.xiayf.cn/2016/01/...
http://blog.csdn.net/zdy0_200...

http://chatgpt.dhexx.cn/article/jTLpaWAD.shtml

相关文章

一篇文章彻底弄懂Base64编码原理

在互联网中的每一刻&#xff0c;你可能都在享受着Base64带来的便捷&#xff0c;但对于Base64的基础原理又了解多少&#xff1f;今天这篇博文带领大家了解一下Base64的底层实现。 Base64的由来 目前Base64已经成为网络上常见的传输8Bit字节代码的编码方式之一。在做支付系统时&…

Base64编码原理

一、Base64是什么 base 64、base 32、base 16 编码建议标准 https://www.ietf.org/rfc/rfc4648.txt Base64是基于64种字符的编码算法&#xff0c;即将数据使用64种字符表示&#xff0c;编码后的Base64字符串长度 通常为原来的3-4倍。&#xff08;补充&#xff1a;Base32就是…

Base64原理

前言 Base64是什么?它和加解密操作有什么关系吗?我们看一下下边这段字符串: aGVsbG8gd29ybGQ= 这就是经过Base64编码后的字符串,对它进行Base64解码,获得它原来的内容: hello world 这有点加密解密的意味,不过Base64并不能称为加密算法,仅仅是加密算法的近亲,可以称之…

Base64原理解析

一. Base64编码由来 为什么会有Base64编码呢&#xff1f;因为有些网络传送渠道并不支持所有的字节&#xff0c;例如传统的邮件只支持可见字符的传送&#xff0c;像ASCII码的控制字符就 不能通过邮件传送。这样用途就受到了很大的限制&#xff0c;比如图片二进制流的每个字节不可…

base64加密原理详解

Base64编码&#xff0c;是我们程序开发中经常使用到的编码方法。它是一种基于用64个可打印字符来表示二进制数据的表示方法。它通常用作存储、传输一些二进制数据编码方法&#xff01;也是MIME&#xff08;多用途互联网邮件扩展&#xff0c;主要用作电子邮件标准&#xff09;中…

Base64基本原理及简单应用

1.什么是Base64 Base64是一种基于64个可打印字符来表示二进制数据的编码方式,是从二进制数据到字符的过程。原则上,计算机中所有内容都是二进制形式存储的,所以所有内容(包括文本、影音、图片等)都可以用base64来表示。 2.Base64编码原理 Base64编码之所以称为Base64,是因…

一文详解 Base64编码原理

最近在看Android的签名与验签机制&#xff0c;其中涉及到 MD5、SHA2、SHA256 等摘要算法&#xff0c;也涉及到 Base64 编码机制。这里先从简单的入手&#xff0c;记录一下 Base64 编码机制的原理。 一、Base64由来 Base64 是一种编码方式&#xff0c;最早出现在电子邮件传输协…

在Unity中导入fbx格式文件

unity中是以米为单位&#xff0c;要想让3dmax中建的模型导入到unity中与unity自带的3d object尺寸一致&#xff0c;最直接的办法是将3dmax中的系统单位也设成米。在三维软件里设置 在菜单->自定义->单位设置&#xff1a; 导出FBX文件前 &#xff0c;我们需要注意如下问…

读取FBX文件踩坑清单

FBX文件得到了许多3D制图软件与3D游戏引擎的兼容&#xff0c;其发展趋势大好。因此若要编写一款3D图形系统&#xff0c;对FBX格式的支持是必经之路&#xff08;或者使用插件形式&#xff09;。笔者尝试在百度、必应等搜索引擎&#xff0c;外加fbxsdk实例的帮助下&#xff0c;读…

查看fbx文件

查看fbx文件可以使用 1.auto fbx review 2.unity 导入Inport New Asset 找到文件夹导入 拖拽到scene中即可查看

「.XD 文件 」用什么软件打开?

1、什么是「.XD 文件 」 「.XD 文件 」其实是 Adobe XD 文件格式。而 Adobe XD 是一款基于矢量的一站式 UI/UX 设计工具&#xff0c;可以进行移动应用和网页设计与原1型制作&#xff0c;从早期的构思和低保真设计&#xff0c;一直到令人印象深刻的动画和逼真的原型&#xff0c…

Unity Fbx转Prefab工具

1.功能描述 a.可将fbx直接导出prefab。 b.同时为prefab预先按需挂载脚本文件。 c.同时为挂载的脚本设置参数&#xff0c;绑定资源等。 d.批量化处理&#xff0c;递归遍历算法&#xff0c;高效可扩展。 2.实现方式 a.Editor类 using Lean.Touch; using Main; using System; usi…

将FBX文件导入Unity3d中

在Project中找到选择Assets: 点击鼠标右键出现下拉列表&#xff0c;在下拉列表中选择“Import New Asset..."选项&#xff1a; 点击后选择你要导入的FBX文件&#xff0c;导入&#xff1a; 然而这样导入的模型并不会显示贴图&#xff0c;要让模型可以正常显示贴图&#xff…

【pymxs】max文件导出fbx文件

1. 前言 .max格式是Autodesk公司下的3dsmax软件的通用格式&#xff0c;许多软件出于商业考虑都有自己的格式&#xff0c;例如网易云下载的音乐。 这也就意味着.max文件只能用Autodesk的产品打开&#xff0c;即3dsmax或maya。 Autodesk的产品均是非开源、封闭式的&#xff0c…

Fbx文件解析(一)——FBX SDK for Windows环境配置

Fbx文件解析&#xff08;一&#xff09;——FBX SDK for Windows环境配置 一、下载并安装FBX SDK 下载网址&#xff1a;http://www.autodesk.com/fbx 找到与自己Windows对应、与自己的VS版本对应的SDK版本&#xff0c;下载并按照安装步骤安装。安装时选择的安装文件夹就是下…

pmx转fbx的具体步骤

本文主要讲述了在Windows10环境下&#xff0c;通过blender将pmx格式文件转化为fbx文件的具体步骤 本文主要包括以下三个部分&#xff1a; 一、blender下载与安装二、cats插件安装三、pmx格式转换为fbx格式 一、blender下载与安装 1.下载blender到电脑上 blender下载 建议下载…

关于unity导出FBX文件

最近有项目需求需要根据特殊文件来绘制自定义图形&#xff0c;考虑到其他编辑器对此文件的共用&#xff0c;所以将图形导出为FBX格式。 在网上找到了一个git仓库在这也记录分享一下&#xff1a; Git仓库:UnityFBXExporterhttps://github.com/Ymiku/UnityFBXExporter 插件功能…

加载FBX模型文件

深入理解加载FBX模型文件 每个模型文件都有自己的格式&#xff0c;有自研引擎的模型格式&#xff0c;有AutoDesk提供的模型文件格式&#xff0c;比如FBX模型文件&#xff0c;因为Unity与UE4引擎的使用而备受关注&#xff0c;FBX文件是AutoDesk提供的SDK&#xff0c;已经封装好了…

FBX格式转换为GLTF/GLB格式

有小伙伴说通过blende将fbx转glb/gltb格式的模型无法在web端加载&#xff0c;或glb模型无法打开&#xff0c;比如腾讯地图加载gltf。 这里个大家分享一个插件 可以将fbx格式转换为glb格式 window版本 链接&#xff1a;https://pan.baidu.com/s/17wwI-hmezg9-sOnHZNn_uw?pwd1…

FBX文件导入Unity导致贴图丢失问题解决,以3ds max,Blender导入导出为例

一 . 首先把资产文件导入三维软件中 1 . 3ds Max 1.1 导入FBX——【免费或者质量差的资源可能会出现平滑组错误的情况&#xff0c;可以直接镜像一个模型更改法线或者删除面重新封口能解决问题】 1.2 导出FBX至Unity引擎 1.2.1 导出文件预设 注意【导出之后会产生一个FBX文件和流…