首页 > 其他分享 >Base64编码解码

Base64编码解码

时间:2023-12-10 15:34:41浏览次数:38  
标签:编码 解码 Base64 input sb bit

一、Base64编码技术简介

Base64编码是一种广泛应用于网络传输和数据存储的编码方式。它将原始数据转换为可打印的字符形式,以便于传输和存储。Base64编码后的数据长度是原始数据长度的约3/4,具有一定的压缩效果。

Base64编码解码 -- 一个覆盖广泛主题工具的高效在线平台(amd794.com)

https://amd794.com/base64encordec

1.1 Base64编码规则

Base64编码规则如下:

  1. 对原始数据按6bit分割,如果当前所有bit长度不是6的整数倍,则有剩余bit。
  2. 对6bit高位补齐2个0,凑成8bit;在剩余bit前面补齐若干0,凑成8bit。
  3. 补齐后的每个字节为索引,根据索引表替换为目标字符。

二、Base64解码技术

2.1 Base64解码规则

Base64解码规则与编码规则相反,主要包括以下步骤:

  1. 根据索引表,将字符替换成索引,每个索引为1个字节,对应8bit。
  2. 将每个索引的前2个bit去掉,剩余所有bit构成原始数据。

三、Base64编码解码实战

3.1 Java实现Base64编码

java

public class Base64Encoder {
    public static String encode(String input) {
        byte[] bytes = input.getBytes();
        StringBuilder sb = new StringBuilder();
        for (byte b : bytes) {
            sb.append(Base64.getEncoder().encode(b));
        }
        return sb.toString();
    }
}

 

3.2 Python实现Base64编码

python

import base64

def encode(input):
    return base64.b64encode(input.encode()).decode()

 

3.3 Java实现Base64解码

java

public class Base64Decoder {
    public static String decode(String input) {
        byte[] bytes = input.getBytes();
        StringBuilder sb = new StringBuilder();
        for (byte b : bytes) {
            sb.append(Base64.getDecoder().decode(b));
        }
        return sb.toString();
    }
}

 

3.4 Python实现Base64解码

python

import base64

def decode(input):
    return base64.b64decode(input.encode()).decode()

 

四、总结

Base64编码解码技术是一种在网络传输和数据存储中广泛应用的编码方式。通过编码,可以将二进制数据转换为可打印的字符形式,便于传输和存储。同时,Base64编码解码技术也具有一定的压缩效果。在实际应用中,我们可以根据需要选择合适的编程语言实现Base64编码解码功能。

标签:编码,解码,Base64,input,sb,bit
From: https://www.cnblogs.com/Amd794/p/17892708.html

相关文章

  • Netty内置的http报文解码流程
    netty解码netty通过内置处理器HttpRequestDecoder和HttpObjectAggregator对Http请求报文进行解码之后,Netty会将Http请求封装成一个FullHttpRequest实例,然后发送给下一站。Netty内置的与Http请求报文相对应的类大致有如下几个:(1)FullHttpRequest:包含整个Http请求的信息,包含对Htt......
  • Unicode编码解码
    一、Unicode概述Unicode是一种字符编码标准,旨在解决不同字符集之间的兼容性问题。它为全球所有语言提供了一种统一的编码方式,使得各种字符能够在计算机系统中正确显示和处理。Unicode字符集包含了世界上几乎所有的字符,包括中文字符、英文字符、数字、特殊符号等。Unicode编码......
  • 利用编码规则生成除单据编码字段以外的字段的自定义编码
    ///<summary>///生成母单号///</summary>///<paramname="billData"></param>///<returns></returns>///<exceptioncref="Exception"></exception>publicvoidCreateMuOrderNo(DynamicObjectb......
  • 【Base64】二进制数据编码解码(OpenSSL BIO)
    1.问题引出计算机中数据使用ascii码存储,而ascii码在128~255之间是不可见字符,网络上传输数据时往往经过多个路由设备,不同设备不同的处理方式也可能导致数据传输过程中处理出现问题。所以我们通过Base64将数据全部编码成可见字符(A-Z,a-z,0-9,+,/共64个)可以降低出错的可能。B......
  • 线路编码方案 —— 《数据通信与网络》4th
    线路编码方案分类单极编码方案在单级编码方案中,所有的信号电平都在时间轴的一边,或者时间轴的上面或者时间轴的下面。不归零(NRZ)一般,单级编码方案设计成不归军(non-return-to-zeroNRZ)方案,在此方案中正电平定义成位而零电平定义成位。之所以称为NRZ,是因为......
  • URL编码
    一、引言URL编码(URLencoding)是一种将文本转换为特定格式的过程,以便在互联网上传输和解析。它是网络通信中不可或缺的技术。本文将详细介绍URL编码的原理、方法与应用,帮助读者深入了解这一技术。URL编码解码--一个覆盖广泛主题工具的高效在线平台(amd794.com)https://am......
  • Qt/C++音视频开发58-逐帧播放/上一帧下一帧/切换播放进度/实时解码
    一、前言逐帧播放是近期增加的功能,之前也一直思考过这个功能该如何实现,对于mdk/qtav等内核组件,可以直接用该组件提供的接口实现即可,而对于ffmpeg,需要自己处理,如果有缓存的数据的话,可以通过在缓存中的数据往前移动往后移动即可。这样就要求做一个比较大的缓存队列,占用一定的内存是......
  • 字符编码
    字符编码一、什么是字符编码?人类在与计算机交互时,用的都是人类能读懂的字符,如中文字符、英文字符、日文字符等计算机却只能读懂二级制的字符,我们就需要将这些字符翻译成计算机能读懂的,而翻译的过程须参照一个特定的标准,这样的对应关系的表,我们就称之为字符编码表,字符编码就是......
  • Python中级之字符编码
    ASKII码GBK/SHIFT-JISUNICODE字符编码【一】什么是字符编码人类在与计算机交互时,用的都是人类能读懂的字符,如中文字符、英文字符、日文字符等而计算机只能识别二进制数二进制数即由0和1组成的数字,例如010010101010计算机是基于电工作的,电的特性即高低电平人类从逻......
  • 特殊不可见字符Unicode编码
    unicode显示符号\u2000 \u2001 \u2002 \u2003 \u2004 \u2005 \u2006 \u2007 \u2008 \u2009 \u200a \u200b​\u200c‌\u200d‍\u200e‎\u200f‏\u2010‐\u2011‑\u2012‒\u2013......