Base64编码解码流程的初步学习飞子的唠唠叨

Base64编码是网络上最常见的用于传输8bit字节代码的编码方式之一,是一种基于64个可见字符来表示二进制数据的方法。

部分网络上传输渠道并不支持所有字节,比如邮件,ASCII控制字符、中文、图片二进制数据等。最好的方法是在不改变传统协议的情况下,开辟一种新方案来支持二进制文件的传输。把不可见字符用可见字符表示。base64就是一种把不可见字符变成可见字符的编码方式。

Base64编码是使用64个可打印ASCII字符("A-Z"、"a-z"、"0-9"、'+'、'/')将任意字节序列数据编码成ASCII字符串,另有'='符号用作后缀用途。

"A—Z"---编码范围为0~25

"a—z"---编码范围为26~51

"0—9"---编码范围为52~61

'+'---编码为62

'/'---编码为63

Base64将输入字符串按字节切分,取得每个字节对应的二进制值(若不足8比特则高位补0),然后将这些二进制数值串联起来,再按照6比特一组进行切分(因为2^6=64),最后一组若不足6比特则末尾补0。将每组二进制值转换成十进制,然后在上述表格中找到对应的符号并串联起来就是Base64编码结果。

由于二进制数据是按照8比特一组进行传输,因此Base64按照6比特一组切分的二进制数据必须是24比特的倍数(6和8的最小公倍数)。24比特就是3个字节,若原字节序列数据长度不是3的倍数时且剩下1个输入数据,则在编码结果后加2个=;若剩下2个输入数据,则在编码结果后加1个=。

完整的Base64定义可见RFC1421和RFC2045。因为Base64算法是将3个字节原数据编码为4个字节新数据,所以Base64编码后的数据比原始数据略长,为原来的4/3。

1)将所有字符转化为ASCII码;2)将ASCII码转化为8位二进制;3)将8位二进制3个归成一组(不足3个在后边补0)共24位,再拆分成4组,每组6位;4)将每组6位的二进制转为十进制;5)从Base64编码表获取十进制对应的Base64编码;实战Base64编码(不同情况举例说明)1.待编码字符数量为3的倍数此处以三个字节进行Base64编码流程为例子,具体流程如下图所示:

我们此时可以先将3的倍数的数量的字符先进行编码,再处理剩下的1个或者2个字符,此处以4个字符进行Base64编码流程为例,具体流程如下图所示:

base64解码,即是base64编码的逆过程,如果理解了编码过程,解码过程也就容易理解。将base64编码数据根据编码表分别索引到编码值,然后每4个编码值一组组成一个24位的数据流,解码为3个字符。对于末尾位“=”的base64数据,最终取得的4字节数据,需要去掉“=”再进行转换。

base64编码中只包含64个可打印字符,而PHP在解码base64时,遇到不在其中的字符时,将会跳过这些字符,仅将合法字符组成一个新的字符串进行解码。

THE END
1.推荐9个指导开发者快速编码/学习的网站jQuery是最著名的JavaScript框架。现在,你可以直接在浏览器中学习jQuery。开始学习jQuery的过程应该是充满乐趣的,jQuery Air通过大量实践的方式来达到这个目的。 7. CodingBat 语言:Java、Python 通过解决示例问题以及在线编码实践的形式,来学习Java和Python。 https://blog.csdn.net/foreverdengwei/article/details/7271904
2.34个免费学习编码的最佳网站腾讯云开发者社区对我来说,书籍或在线课程可以被认为是网页设计和开发领域的学习和专业发展非常有用的资源。因为它是作者在学习过程中的经验总结,以及将这些知识应用到实际项目中。 如果您有足够的钱能够购买最好的编程书籍和课程来发展您的技能,而不用看它的价格,自然是更好的。不过和我一样,刚开始还是个没有收入的学生的时候,https://cloud.tencent.com/developer/article/2142577
3.编解码编码和解码工具。你有没有想过为什么有些网址中包含奇怪的字符?没准是“URL编码”。你是一个程序员,需要用有限的字符集,可能电子邮件传输(MIME)来表示数据?为什么不的Base64编码。使用免费的在线编码和解码工具下面的编码和解码数据。 编码器/解码器 Base64的解码器 https://www.convertstring.com/zh_CN/EncodeDecode
4.python在线base编码51CTO博客已为您找到关于python 在线base编码的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及python 在线base编码问答内容。更多python 在线base编码相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。https://blog.51cto.com/topic/f41b4b0153e3d30.html
5.Base64解码和编码文件大小上限为 192MB。请勿执行源自不可信来源的解码文件。对每一行分别解码(用于有多个条目时)。解码 关于 认识Base64 编码和解码,这是一个简单易用的在线工具,顾名思义,就是简单快捷地进行 Base64 代码的解码或编码操作。您的数据可以轻松地编码为 Base64 编码,也可以解码为人类可读的格式。 https://www.base64decode.org/zh/
6.在线Base64编码器为了绕过它,我们将我们的数据编码为 Base64,以便它可以通过这种介质发送,例如 MIME(多用途 Internet 邮件扩展)和 XML(可扩展标记语言)数据上的电子邮件消息。可能会出现另一个问题,数据是如何编码成 Base64 的?答案是通过将每 3 位二进制数据分成 6 位单元对其进行编码,这会产生新数据,然后此新数据在 64 基数https://www.useotools.com/zh/base64-encoder
7.sololearn安卓下载sololearn(免费学习代码app)v4.0.5安卓版sololearn app是一款良心的编程学习软件,拥有完善的编程基础课程,不需要花钱,没有广告,用户可以在线免费学习各类计算机语言,通过游戏式的学习方式,增添学习乐趣,还有社区交流版块,各路大神与你一起交流编程知识,有需要的朋友欢迎下载体验。 sololearn介绍: SoloLearn 从初学者到专业人士,都有最多的免费代码学习内容集合!从https://www.qqtn.com/azsoft/614675.html
8.免费在线序列编码生成器Sequential Number Barcode Generator Software 前缀码: 序列起始码: 序列结束码: 加"0"以保持编码长度一致: YesNo(示例: 01, 02, 03, 04 ) 后缀码: 编码间隔: 编码重复次数:http://www.t-x-m.com/SequenceMumberGenerator/SequenceNo.asp
9.编码怎么才能学好常见的编码语言包括Python、Java、C++等。也可以选择学习前端开发、后端开发、数据科学等不同的编码领域。2 寻找学习资源:根据您的学习目标,寻找适合的学习资源。可以包括在线教程、编程书籍、视频教程、编码培训课程等。一些常用的学习平台和网站如Coursera、Udemy、Codecademy等提供了丰富的编码学习资源。3 学习基础知识https://baijiahao.baidu.com/s?id=1782998065066679076&wfr=spider&for=pc
10.urlcode在线编码,rpa,机器人,自动化在线URL编码解码工具UrlEncode编码和UrlDecode解码-在线URL编码解码工具2023年9月3日?·?URL编码解码工具可以对Url进行:UrlEncode编码 和 UrlDecode解码,可以将一些特殊字符和汉字变为Encode编码。 简单快捷地在线制作URL编码。 在线URL编码解码工具 更多内容请查看http://www.urlencode.com.cn/ https://www.wdlinux.cn/html/wangluo/20241129/20337.html
11.编码在线工具Base64加密和Base64解密,通常也称为Base64编码和Base64解码。base64加密解密在线转换工具,提供 开始使用 已被使用19.9w+次 免费 字符串编码解码 字符串编码解码提供各种字符串编码格式的转换,编码类型有UTF16,mimeBase64,URL Encode/Decode 开始使用 已被使用21.2w+次 免费 unicode编码转换 此工具是Unicode,中文与AShttps://www.zxgj.cn/tag?tag=%E7%BC%96%E7%A0%81
12.实用(又有趣)的AI编码课程MicrosoftLearn厌倦了使用 LLM 和 SLM 观看 AI 演示,让你思考:“很酷,但如何构建它? 在此会话中,我们不只是显示,我们正在做。 我们将了解如何通过一些巧妙的 C# 将这些演示引入生活。 想象一下拆分屏幕:一侧是 Azure AI Studio,另一侧是 C# 和语义内核。 在短短 10 分钟内,你将获得编码 AI 的崩溃课程。 让我们来编写https://learn.microsoft.com/zh-cn/shows/azure-developers-dotnet-day-2024/practical-and-fun-ai-coding-sessions