一文搞懂 Base64 , 简单!

article/2025/9/13 6:18:34

Base64是一种用64个字符来表示任意二进制数据的方法。

# Base64 编码表(标准)

相信我们都知道ASCII 编码,从A-Z、a-z、0-9和一些其他的特殊字符,这些字符都有唯一的一个数字来表示

同理Base64也有这样一套编码。

范围是”A-Z“、”a-z“、”0-9“、”+“、”/“一共64个字符。

我们给出一个表格来看一下,这个比ASCII编码要简单多了,只有64个

在这里插入图片描述

由于索引是从0开始,所以最后的索引是63。

用途

  • Base64适用于小段内容的编码,比如数字证书签名、Cookie的内容等。

  • 网络上传递图片:
    编码图片的话,会把字符 +/ 分别变成 -_ ,这样64个字符均不是转义字符。(自定义编码集)
    这样我们就可以把二进制图片转换为base64编码格式,放在 html 文本中。

# 编码流程

下面,看看二进制是如何转为 base64 的。

  • 对二进制数据进行处理,每3个字节一组(b1 b2 b2),一共是3x8=24bit,划为4组(n1 n2 n3 n4),每组正好6个bit:
    在这里插入图片描述

我们知道,6bit大小的二进制数转换回十进制,范围是0~64

这样,我们就可以把每个6bit二进制数和base64编码表一一对应起来了!

# 处理流程

  1. 将所有字符转化为ASCII码;
    如:A ⇒ 65
  2. 将ASCII码转化为8位二进制;
    如:65 ⇒ 0100 0001
  3. 将二进制3个归成一组(不足3个在后边补0)共24位,再拆分成4组,每组6位;
    如:0100 00010100 0001 0000 0000 0000 0000补两个八位的0
    010000010000000000000000
  4. 统一在6位二进制前补两个0凑足8位;
    如: 010000010000000000000000
    00010000000100000000000000000000
  5. 将补0后的二进制转为十进制;
    如: 00010000000100000000000000000000
    ⇒ 16、16 、0、0
  6. 从Base64编码表获取十进制对应的Base64编码;
    如: 16、16 、0、0
    ⇒ Q、Q 、0、0

细节:

  1. 转换的时候,将三个byte的数据,先后放入一个24bit的缓冲区中,先来的byte占高位。
  2. 数据不足3byte的话,于缓冲区中剩下的bit用0补足。然后,每次取出6个bit,按照其值选择查表选择对应的字符作为编码后的输出。
  3. 不断进行,直到全部输入数据转换完成。
  4. 如果最后剩下两个输入数据,在编码结果后加1个“=”;
  5. 如果最后剩下一个输入数据,编码结果后加2个“=”;
  6. 如果没有剩下任何数据,就什么都不要加,这样才可以保证资料还原的正确性。

因为前面补了两个八位的0

所以最后输出:QQ==

在这里插入图片描述

# 说明

  • Base64编码会把3字节的二进制数据编码为4字节的文本数据,长度增加33%,好处是编码后的文本数据可以在邮件正文、网页等直接显示。

  • Base64是一种通过查表的编码方法,不能用于加密,即使使用自定义的编码表也不行。


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

相关文章

base64原理与实现

1. base64 bse64是一种以64个可见字符集对二进制数据进行编码的编码算法。 1.1 应用范围 base64常用于网络数据传输过程的编解码环节。HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了base64来将一个较长的一个标识符&a…

Base64编码的原理及实现(源码)

Base64编码在邮件中最为常见,呵呵,因为我最近就是在做邮箱报警,SMTP验证就是Base64编码用户名和密码进行验证的,并且附件也是要转换成base64编码的数据,然后再发送的。该编码使用64个明文来编码任意的二进制文件&#…

详述图片base64加密的原理,告诉你什么是“/9j/“

欢迎大家搜索“小猴子的技术笔记”关注我的公众号,有问题可以及时和我交流。 在日常的生活中,我们肯定都经历过类似这样的场景:报名考试上传图片,网站要求的是上传的照片不能大于多少,而且要求是“.jpg”的格式。 于是…

base64编码原理之python应用

base64产生原因? 先看ascii码的图片 scii码的128~255之间的值是不可见字符。而在网络上交换数据时,比如说从A地传到B地,往往要经过多个路由设备,由于不同的设备对字符的处理方式有一些不同,这样那些不可见…

一文搞懂Base64编码原理

Base64是最常见的用于传输8Bit字节码的编码方式之一,它是一种基于64个可打印字符来表示二进制数据的方法。 Base64是什么 Base64编码,是由64个字符组成编码集:26个大写字母AZ,26个小写字母az,10个数字0~9&#xff0c…

Base64编码解码原理

本篇文章主要是从Base64的原理入手,并给出java的Base64实现。方便了解、学习Base64。 base64的简介----摘自于百度百科 一、Base64大致用途 很早之前,电子邮件刚刚问世,那时候消息的传递都是英文,后来中国开通了互联网之后&#…

Java—Base64编码原理

Base64作为java编程中常见的编码方式,经常在各种加密(例如AES、RSA等等)的过程中用来实现加解密中间产物可读性的重要工具,很值得我们去了解一下它的原理。Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Ba…

一文轻松明白 Base64 编码原理

把图片丢进浏览器,打开sources能看到一长串字符串,这是图片的Base64编码。这一长串编码到底是怎么生成的呢? 我们接下来探索一下base64编码的原理 Base64 名称的由来 Base64编码要求把3个8位的字节(3824)转化为4个6…

base64编码原理及代码实现

在ctf里reverse经常会有base64相关的题型,每次写到这类题型只能凭经验猜测考点来解题,特此出一个base64相关的博客,加深对base64的理解,下次再看到伪代码也不会觉得慌了,毕竟纵使实现形式不同,代码的核心逻…

Base64编码的原理与常用实现

这篇主要是为了后面好介绍加密算法,做的铺垫。 这个是基础,什么是一个程序员的涵养,这些基础就是涵养。 平时可能用不到,但必须得会。 如果连这个原理都说不上来,就别玩王者荣耀绝地求生英雄联盟和平精英了&#xff0c…

Base64原理及魔改更换码表

一,Base64是什么(原理比较难理解,可参考下面的实践 ) Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。三个字节有24个比特…

base64加密原理解析

开发者对Base64编码肯定很熟悉,是否对它有很清晰的认识就不一定了。实际 上Base64已经简单到不能再简单了,如果对它的理解还是模棱两可实在不应该。大概介绍一下Base64的相关内容,花几分钟时间就可以彻底理解它。文 章下边贴了一个Base64的编…

Base64加密原理

Base64加密方式是将三个八位的字节转化为四个六位的字节(不足八位的高位补00),3*8 4*6;,所以base64加密过后的内容比原来的大三分之一; 举例:加密“ace”, ace转化为二进制为&…

Base64编码原理分析

文章目录 一、认识(一)认识(二)计算(1)规则(2)示例(3)Base64编码转换表 二、网页图片转base64编码分析(一)Data URI(二&am…

base64编码,原理是什么,有什么作用?

base64到底是什么东西呢? Base64编码是网络上常见的用于传输8bit字节数据的一种编码方式之一 , 有些人和书本会将编码写成加密算法,这其实是欠妥的。因为任何人拿到编码后的数据都能转化成原始数据,算法是透明的,也不存在秘钥的概…

一篇文章彻底掌握Base64编码原理

一篇文章彻底掌握Base64编码原理 在互联网中的每一刻,你可能都在享受着Base64带来的便捷,但对于Base64的基础原理又了解多少?今天这篇博文带领大家了解一下Base64的底层实现。 Base64的由来 目前Base64已经成为网络上常见的传输8Bit字节代…

Base64编码解码原理详解

Base64编码解码原理详解 1. Base64字符的组成部分 Base64所用字符: 0,1,2 ….9 A,B,C,D…Z a,b,c,d…z / 对应ASCII: 48,49…58,65,66…90,97,98…122, 43,47 2. 10个数字,26个大写字母,26个小写字母,1个&#xff0c…

彻底弄懂base64的编码与解码原理

作者介绍 背景 base64的编码原理网上讲解较多,但解码原理讲解较少,并且没有对其中的内部实现原理进行剖析。想要彻底了解base64的编码与解码原理,请耐心看完此文,你一定会有所收获。 涉及算法与逻辑运算概念 在探究base64编码原理…

深入理解 Base64 底层原理

Base64 是一种常见数据编码方式,常用于数据传输。对于移动开发者来讲,网络请求中会经常使用到。对 JSON 熟悉的同学都知道,JSON 的序列化工具都不支持将 byte 数组直接放入 JSON 数据中,针对这种二进制数据,在处理的时…

Base64基本原理

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