【Qt】【Base64】 Base64简单介绍和Qt下Base64编解码

本文详细介绍了Base64编码的基本概念,解释了它如何将二进制数据转换为可打印字符,以便在网络上传输。Base64常用于邮件编码、图片编码以及URL中的二进制数据编码。文章还提供了在Qt、Java和C++中实现Base64编解码的具体示例。

 

什么是Base64:

参考:

Base64编解码及其C++实现

什么是Base64?

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

Base64,就是使用64个可打印字符来表示二进制数据的方法。

我:简单的来说就是把二进制的数据,按每6位(2的6次方=64)读取再转换为可打印字符(64个,且每个字符依旧是8位的),也就是3字节转4字节(不足三字节的填充0)

 

Base64应用:


由于二进制的一些字符在网络协议中属于控制字符,不能直接传送,因此需要用Base64编码之后传输,编码之后传输的是一些很普通的ASCII字符。
Base64常用于邮件编码,当邮件中有二进制数据时,就要编码转换。
图片的编码
Url中有二进制数据,这个时候需要Base64编码(Web安全的Base64)
可以进行简单的加密,Base64的编解码规则是透明的,因此用Base64加密时要加盐
 

 

Qt下实现Base64编解码:

// 编码:
QByteArray bytearray("Qt is great!");
bytearray.toBase64();        // returns "UXQgaXMgZ3JlYXQh"
// 解码:
QByteArray bytearray("Qt is great!");
QByteArray bytearrayfrombase64 = QByteArray::fromBase64( bytearray.toBase64() );

// QByteArray 转 QString
QString qstr = bytearrayfrombase64;
qDebug << qstr << endl; // 显示编码的字符串;
或者:
// QString & QString::prepend ( const QByteArray & ba )
QString qstr;
qstr.prepend(bytearrayfrombase64);

Java下实现Base64编解码:  

package com.first;
 
import org.junit.Test;
 
import java.io.UnsupportedEncodingException;
import java.util.Base64;
 
public class Test {
 
    @Test
    public void test() throws UnsupportedEncodingException {
        // 编码
        String encode = Base64.getEncoder().encodeToString("So".getBytes("UTF-8"));
        System.out.println(encode);
        // 解码
        byte[] decode = Base64.getDecoder().decode(encode);
        System.out.println(new String(decode, "UTF-8"));
    }
 
}

C++下实现Base64编解码:  

   1、第三方库:GitHub - pocoproject/poco/Foundation 中的Base64Encoder, Base64Decoder

   2、自己编写:Base64编解码及其C++实现

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值