C/C++实现编解码Base64

这篇具有很好参考价值的文章主要介绍了C/C++实现编解码Base64。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Base64简介

1、简介

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

2、应用

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

二、Base64原理

用一句话来说明Base64编码的原理:“把3个字节变成4个字节”。

这么说吧,3个字节一共24个bit,把这24个bit依次分成4个组,每个组6个bit,再把这6个bit塞到一个字节中去(最高位补两个0就变成8个bit),就会变成4个字节。没了。

因为6个bit最多能表示 26=64 2 6 = 64 ,也就是说Base64编码出来的字符种类只有64个,这也是Base64名字的由来。

那我们就要从ASCII中0x20 ~ 0x7E是可打印字符选出64个普通的ASCII字符

映射表:文章来源地址https://www.toymoban.com/news/detail-652600.html

到了这里,关于C/C++实现编解码Base64的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【嵌入式——C语言】共用体

    定义 :共用体和结构体类似,也是一种构造类型的数据结构,在进行某些算法时,需要使用几种不同类型的变量存到同一段内存单元中,几个变量所使用空间相互重叠,这几个不同的变量共同占用一段内存的结构,被称作共用体类型结构。 共用体的大小是其占内存长度最大

    2024年01月22日
    浏览(47)
  • 【JS】实现 Base64 编码和解码(及中文乱码问题)

    JavaScript 定义了两个与 Base64 相关的全局方法。 遇到中文编码需要先做一次 URI 组件编码或对解码后的内容进行 URI 解码 示例:Base64 编码 示例:Base64 解码 中文乱码处理方法: 按照 Base64 插件:编解码: js-base64 ,判断是否是Base64编码格式: is-base64 插件使用

    2024年02月15日
    浏览(40)
  • 痞子衡嵌入式:简析i.MXRT1170 MECC64功能特点及其保护片内OCRAM1,2之道

    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是 i.MXRT1170 MECC64功能特点及其保护片内OCRAM1,2之道 。 ECC是 “Error Correcting Code” 的简写,ECC 能够实现错误检查和纠正,含有 ECC 功能的内存一般称为 ECC 内存,使用了 ECC 内存的系统在稳定性和可靠性上得到

    2024年02月04日
    浏览(40)
  • FRDM‐K64F开发板 ARM Mbed 在线编译器嵌入式和物联网开发

    传感器是将物理参数转换为电输出的设备。 传感器是换能器的一种。 传感器可分为模拟传感器和数字传感器。 模拟传感器以电压和电流的形式提供输出。 微控制器需要 ADC(模数转换器)读取来自模拟传感器的数据。 许多较新的传感器都是数字传感器,即它们使用 I2C(内部

    2024年01月24日
    浏览(52)
  • 【嵌入式算法】学习笔记(一):数字滤波算法

    最近在做直流电机的毕设中,由于需要采集转速,电流,电压,温度等参数,常规的采集容易受到干扰,所以特意复习了一下关于数字滤波有关的知识,并作出相应的整理。 本文对数字滤波进行简单介绍,讲解七种常用的滤波算法并用C语言实现,并比较其优缺点 。由于篇幅

    2023年04月22日
    浏览(97)
  • C/C++|物联网开发入门+项目实战|空间读写|非字符空间|返回值内部实现|嵌入式C语言高级|C语言函数的使用(2)-学习笔记(12)

    参考: 麦子学院-嵌入式C语言高级-C语言函数的使用 空间的读写 void fun(char *p); const char *p 只读空间,只为了看 char *p;该空间可能修改,几乎都要变 strcpy(); 定义:char *strcpy(char *dest,const char *src); sprintf(); 作用 1、修改 int * short * long * 2、空间传递 2.1 子函数看看空间里的情况

    2023年04月22日
    浏览(64)
  • 嵌入式C语言(入门必看)

          目录 STM32的数据类型 const static volatile extern  struct结构体 enum  typedef #define 回调函数 #ifdef 、#ifndef、#else  、#if     嵌入式开发中既有底层硬件的开发又涉及上层应用的开发,即涉及系统的硬件和软件,C语言既具有汇编语言操作底层的优势,又

    2024年01月17日
    浏览(45)
  • 【面试集锦 - 嵌入式软件 - C语言】

    指针函数(Pointer to a Function)和函数指针(Function Pointer)是在C和C++中经常使用的概念,它们虽然名称相似,但是在用法和作用上有一些区别。 指针函数 指针函数是指返回值为指针类型的函数。换句话说,它是一个函数,其返回类型是一个指针。指针函数可以用来实现动态分

    2024年02月07日
    浏览(53)
  • (嵌入式c语言)c语言编译常见错误

    预处理(gcc -E -o)-编译(gcc -S -o)-汇编(gcc -c -o)-链接(gcc -o) 将代码中的define 和 include替换成实体码  define和include不是,是在编译过程中处理的。 包含 #include 包含头文件 宏 #define 宏  替换  不会进行语法检查 #define 宏  宏体   宏体要加括号 #define ABC 

    2024年02月11日
    浏览(41)
  • 【嵌入式——C++】算法(STL)

    需要引入头文件 #include algorithm 遍历容器。 代码示例 搬运容器到另一个容器中。参数1 原容器起始迭代器,参数2 原容器结束迭代器,参数3 目标容器开始迭代器 参数4 函数或者仿函数。 代码示例 查找元素,查找指定元素,找到返回指定元素的迭代器,找不到返回结束迭代器

    2024年02月19日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包