Base64是一种将任意二进制数据(不仅仅是纯文本字符组成的数据)转换为纯文本消息的方法,然后可以通过计算机网络传输。这就是所谓的编码。虽然Base64编码的消息的输出不是人类能够容易理解的,但它仍然包含64个常见的英文字...

Base64是一种将任意二进制数据(不仅仅是纯文本字符组成的数据)转换为纯文本消息的方法,然后可以通过计算机网络传输。这就是所谓的编码。虽然Base64编码的消息的输出不是人类能够容易理解的,但它仍然包含64个常见的英文字符,这就是名字的由来,ASCII编码系统以其适应性和简单性而闻名。base64背后的想法是因为需要通过网络通信(如电子邮件)获得更多的简单文本字符。最初的电子邮件消息最初是以美国信息交换标准码(ASCII),计算机中用来在显示器或打印机上将英文字母字符表示为文本的编码方法。作为需要通过的附加二进制信息,开发了新的编码方案。base64编码方法首次在多用途Internet邮件扩展(MIME)标准中进行了描述。MIME标准定义了一些方法,通过这些方法,其他非ASCII编码的字符,如非英语语言使用的字母表,以及其他任意的二进制数据都可以使用也可以被编码成ASCII序列,并通过电子邮件发送。在MIME标准描述的两种主要编码方式中,base64与另一种被称为带引号的可打印字符共享角色。虽然带引号的可打印方法能够将ASCII扩展到有限的94个可打印字符之外,base64可以接受任何字节序列并将其转换为ASCII序列。base64需要获取不符合ASCII标准的数据字符串并将其转换为ASCII要做到这一点,编码方法是将数据收集成三个字节的组,并将它们转换成四个代表相应ASCII字符的数字的过程。由于一个字节是8位,其中每一位都用1或0表示,所以三个字节被端到端连接起来,整个序列进入24位缓冲区然后将24个1和0分成4组,每组6位,每个组分配匹配ASCII字符的数字。由于base64能够对任何二进制数据进行编码,因此任何字节序列都可以通过这个过程。但是,在编码字节数不能被整除的情况下,有一个陷阱如果一个字节序列包含四个或五个字节,那么仍然需要一些东西来填充缓冲区并补足24个字节。在这种情况下,每个丢失的字节用8个0表示,然后在编码完成后转换为填充字符,这就是前面提到的第65个字符的来源,在编码消息中用等号(=)表示;它只会出现在编码的最后,如果需要填充。虽然base64最初是为通过电子邮件传输二进制数据而设计的,除了MIME外,它的用法在许多其他领域也发挥了作用。其中一个相当常见的用途是web数据库和应用程序对数据进行编码,以便在web表单上创建统一资源定位器(URL)。可扩展标记语言(XML)还使用了一个允许二进制数据的变体,例如小图像,包含在XML文档中。加密方法和其他安全相关技术(如隐藏密码)也有其他变体

发表于 2020-08-06 23:17

阅读 ( 297 )

base64编码计算机网络,什么是Base64(Base64)?相关推荐

  1. c# java base64编码解码_C#教程之Base64编码解码原理及C#编程实例

    一. Base64编码由来 为什么会有Base64编码呢?因为有些网络传送渠道并不支持所有的字节,例如传统的邮件只支持可见字符的传送,像ASCII码的控制字符就不能通过邮件传送.这样用途就受到了很大的 ...

  2. golang中base64编码_Go语言教程:Base64编码

    概念简介 Go语言提供内建的 base64 编解码支持. 例程代码 package main // 这个语法引入了 `encoding/base64` 包并使用名称 `b64` // 代替默认的 `b ...

  3. php判断base64编码,检测PHP中的base64编码?

    要检测PHP中的base64编码,代码如下- 示例<?php $value_1 = array(); foreach (str_split('az019AZ~~~!@#$%^*()_+|}?&g ...

  4. (转)base64编码(严格说来,base64不算作加解密算法)

    [README] 1.本文转自: Java base64加密解密 - xuwc - 博客园参考: https://www.cnblogs.com/luguo3000/p/3940197.html ht ...

  5. golang中base64编码_golang中自带base64编码和解码

    golang中base64的编码和解码可以用内置库encoding/base64 package main import ( "encoding/base64" "fmt ...

  6. java中base64编码加密和android中base64编码加密不一样?base64编码解析错误?

    在android的base64加密后得到: WwogIHsKICAgICJ0MSI6ICIwIiwKICAgICJ0MiI6ICIyNDM4NCIsCiAgICAidDMiOiAiIiwKICAgIC ...

  7. base64编码转换android,Android将base64编码转化成图片

    类似base64流的图片解析并展示: data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBw ...

  8. openssl算法 —— 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密

    openssl 加密字符串的方法: 一.利用openssl命令进行BASE64编码解码(base64 encode/decode): 1. BASE64编码命令 对字符串'abc'进行base64编码 ...

  9. SpringBoot+Vue实现请求后台获取Base64编码的图片验证码并使用Redis缓存实现2分钟内有效

    场景 前端Vue的登录页面,验证码请求后台,后台生成验证码照片后使用Base64编码后, 返回给前端,前端进行显示. 注: 博客: https://blog.csdn.net/badao_liuman ...

  10. 浅谈Base64编码算法

    一.什么是编码解码 编码:利用特定的算法,对原始内容进行处理,生成运算后的内容,形成另一种数据的表现形式,可以根据算法,再还原回来,这种操作称之为编码. 解码:利用编码使用的算法的逆运算,对经过编码的 ...

最新文章

  1. centos python 安装
  2. Jzoj5234 外星人的路径
  3. android ListView常用知识总结
  4. 单一工作流的执行➕回滚框架初步想法(基于事件驱动模式)
  5. xml转化为kml_借助ogr2ogr工具实现shp文件转换kml格式
  6. windows删文件:找不到该项目,该项目不在xx中,请确认位置,然后重试 的解决方案
  7. HDU 1010 深搜+奇偶剪枝
  8. plc 上位机编译算法_基于西门子PLC的Socket通信深度剖析
  9. AngularJS自定义指令教程第2部分
  10. linux 汇编语言ldreq,请教一个中断句柄的问题 - ARM技术论坛-ARM嵌入式论坛-人气最火爆ARM学习论坛 - 21ic电子技术开发论坛...
  11. 永中集成Office为何无法随意克隆(Clone)?
  12. 初探三维计算机视觉(三维重建) —— 相机模型 + 双目系统 + 点云模型
  13. 转:陈佩斯曝光春晚背后种种肮脏行径
  14. Unity日常Bug
  15. git branch 和 git checkout -b 创建新brach的区别
  16. 云计算基础架构 (三)Mongodb
  17. jdk8 list 反转_反转人生 莫锋颜月荷六朝金粉
  18. 美国人初学Python100个代码题目之2
  19. 关于JS里的数组和对象的日常使用
  20. 天猫页面之一(公共页面)

热门文章

  1. 腾讯笔试题——五笔编码
  2. Second《C++ Primer》中文第四版
  3. retina屏下的1px线的实现
  4. topic是短语还是句子_新仁爱版英语unit4 topic1短语和句子
  5. 三维图像专业处理软件Dragonfly的快捷键设置
  6. 【教男朋友用python做计量】03.利用python进行假设检验(1)
  7. TQ2440——NandFlash分区修改
  8. 《东藏记》—— 读后总结
  9. 联想电脑管家不显示开机时间_联想电脑怎么设置显示开机时间
  10. APICloud手机端网站直接制作手机APP