首页 > 其他分享 >Base64编码

Base64编码

时间:2023-10-08 14:44:56浏览次数:44  
标签:编码 base64 转换 字节 Base64 abc 字符串

base64 是什么?

Base64,顾名思义,就是包括小写字母a-z、大写字母A-Z、数字0-9、符号"+"、"/"一共64个字符的字符集,(另加一个“=”,实际是65个字符,至于为什么还会有一个“=",这个后面再说)。任何符号都可以转换成这个字符集中的字符,这个转换过程就叫做base64编码。

base64怎么转换

首先将字符串(图片等)转换成二进制序列,然后按每6个二进制位为一组,分成若干组,如果不足6位,则低位补0。每6位组成一个新的字节,高位补00,构成一个新的二进制序列,最后根据base64索引表中的值找到对应的字符。

 

 

我们举个例子, 假设有字符串“abc", 我们要对其进行base64编码,最后结果会是什么呢?

 

 

字符串abc对应3个字节,一共24位,按6位为一组可分为4组,在每组的高位补上00,经过转换,abc 的 base64 编码是 YWJj, 由原来的3个字母变成了4个,所以base64会比原字符串更长。

那问题来了,假设原始字符串不够3个字节,只有一个字节或者两个字节怎么办?

以两个字节为例, 按照上面的转换逻辑,经过编码转换,第三个字节只有4位,需要在第三组前后都要加两个0,转换后的字符串是 YWI。 为了凑齐4个字节,还要在末尾补上一个"="号,最后得到的base64编码就是: "YWI="

 

 

如果原始字符只有一个字节,原理是类似的,第二个字节除了前面补两个0,还要在后面补4个0,得到的字符串是YQ,剩下两个字节也用等号“=”来凑。所以a的base64编码就是 YQ==

 

 

总结一点就是只要原始字符串的长度不能被3整除,后面的位都会用0来补充。

标签:编码,base64,转换,字节,Base64,abc,字符串
From: https://www.cnblogs.com/TodayWind/p/17749027.html

相关文章

  • Qt中文编码的转换
    Windows容易出现GBK编码乱码的问题,这里使用QTextCodec来转码:假设你现在的编码是utf8,但是显示在windows上是乱码,那么你可以尝试以下操作://utf8转GBKQStringbuf="你好";QTextCodec*code=QTextCodec::codecForName("gb2312");QByteArrayarr=code->fromUn......
  • URLEncode和Base64
    1.URLEncode和Base64在我们访问一个url的时候总能看到这样的一种urlhttps://www.sogou.com/web?query=%E5%90%83%E9%A5%AD%E7%9D%A1%E8%A7%89%E6%89%93%E8%B1%86%E8%B1%86&_asf=www.sogou.com&_ast=&w=01019900&p=40040100&ie=utf8&from=index-nologin&s_from=inde......
  • 哈弗曼编码与反编码的实现 java源代码
    哈弗曼编码与反编码的实现 java源代码下载地址:publicclassHuffman{ publicstaticvoidmain(String[]args){ new HaffmanFrame(); }}//主界面类importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;//主界面publicclassHaffmanFrameextends......
  • FreeSWITCH添加h264编码及pcap视频提取
    操作系统:CentOS7.6_x64、Windows10_x64FreeSWITCH版本:1.10.9Python版本:3.9.2一、启用h264相关模块这里以mod_openh264为例进行演示。1、安装open_h264库获取open_h264源码:gitclonehttps://github.com/cisco/openh264.git若下载过慢,可从如下渠道获取:关注微信......
  • 关于当下ChatGPT在软件工程编码过程反思
        背景    首先声明笔者是软件开发多年经历,对于ChatGPT过程中一些观察,仅代表个人观点。对于才工作的新人,没有更多软件开发与编码经验,可能ChatGPT帮助更大。当下ChatGPT在软件工程编码过程反思:    风险一: ChatGPT当下对于整个软件工程优化与改进所有源代码效......
  • 【论文2】自编码器为何Work?
     在研究stylelatentspace的概念时,我得到了对自编码器为何Work的解释:因为模型需要重建压缩数据,所以它必须学会存储所有相关信息并忽略噪声。这就是数据压缩的价值——它允许我们摆脱任何无关的信息,只关注最重要的特征。 ......
  • '''实验1 只有温度和时间 每个物料的初始温度和初始时间不一样 无分类变量需转为读热
    '''目标:拟合物料冷却规律分类变量:物料规格,冷却方式连续变量:温度,时间其他因素:车间温度现实因素:初始温度,初始时间需求因素:目标温度的时间,目标温度的时长(时间-初始时间),当前时间的温度不加入分类变量则为单个线性模型''''''实验1只有温度和时间每个物料的初始温......
  • 【十分钟一个知识点】数据、信息、编码
    数据数据是对客观事物的符号表示信息没有统一的定义,但是我们日常生活中所认为的信息都只是信息的载体特征:载体依附性:信息无法独立存在,依附于载体时效性:信息反映事物某一时间的状态、内容共享性:信息可以共享,同一种信息可以同时被不同的接收者获取可加工处理性、真伪性:信息......
  • Go每日一库之148:base64Captcha(多种形式验证码)
    Base64captcha几行代码就可以定义自己内容的图形验证码库,支持任意unicode字符的内容.1.文档&DemoEnglish中文文档Playground2.快速上手2.1下载base64Captcha包goget-ugithub.com/mojocn/base64Captcha2.2在您的项目中使用base64Captcha2.2.1实现Store......
  • 哈夫曼编码及例程
    哈夫曼编码是一种常见的无损压缩算法,通过根据字符出现的频率构建一个最优编码树,将频率较高的字符用较短的编码表示,从而实现数据的压缩。下面是一个简单的例程来演示如何使用哈夫曼编码进行文本数据的压缩和解压缩。压缩过程:统计输入文本中每个字符的出现频率。根据字符频率构建哈夫......