当前位置: 首页 > news >正文

创意网站 案例 下载推广网站发布文章

创意网站 案例 下载,推广网站发布文章,创建集团上海公司网站,wordpress采集前端发文一、base64编码介绍 Base64编码是一种将二进制数据转换成ASCII字符的编码方式。它主要用于在文本协议中传输二进制数据#xff0c;例如电子邮件的附件、XML文档、JSON数据等。 Base64编码的特点如下#xff1a; 字符集#xff1a; Base64编码使用64个字符来表示二进制数据…一、base64编码介绍 Base64编码是一种将二进制数据转换成ASCII字符的编码方式。它主要用于在文本协议中传输二进制数据例如电子邮件的附件、XML文档、JSON数据等。 Base64编码的特点如下 字符集 Base64编码使用64个字符来表示二进制数据通常使用字母A-Z、a-z、数字0-9和两个特殊字符 和 /。有时候根据具体需求可能会使用不同的字符集比如URL安全的Base64编码会使用字符集 A-Za-z0-9-_其中 “-” 和 “_” 替代了 “” 和 “/”。 长度增加 Base64编码通常会导致编码后的数据长度略微增加。每三个字节的二进制数据编码成四个Base64字符。 填充字符 如果最后一组不足三个字节Base64编码会使用一个或两个等号 “” 进行填充。 可逆性 Base64编码是可逆的可以通过解码还原回原始的二进制数据。 广泛应用 Base64编码广泛应用于数据传输特别是在文本协议中以及在一些数据存储和表示的场景中。 下面是一个简单的示例展示如何对字符串 “Hello, World!” 进行Base64编码 原始字符串Hello, World! Base64编码SGVsbG8sIFdvcmxkIQ 二、base64编码原理 Base64编码的原理基于将二进制数据转换成一组可打印字符的过程。它是一种用64个字符来表示所有可能的6位二进制数的方法。以下是Base64编码的基本原理 将数据划分成固定长度的块 首先将要编码的数据按照一定的规则划分成固定长度的块。通常是每三个字节划分为一组因为每组有3个字节24位正好可以表示为4个Base64字符。 将块中的二进制数据转换为整数 将每个块中的三个字节的二进制数据转换为一个24位的整数。这个整数的取值范围是0到2^24-1。 将整数按6位一组划分 将上一步得到的整数按照6位一组划分成四组。因为2^6等于64所以每组的取值范围是0到63。 将每组的值映射到Base64字符集 将每一组得到的数值映射到Base64字符集。Base64字符集通常包含64个字符例如字母A-Z、a-z、数字0-9以及两个额外的字符通常是“和”/。这样就得到了四个Base64字符。 处理末尾的填充 如果原始数据的长度不是3的倍数那么最后一个块可能不足3个字节。在这种情况下会使用一个或两个等号 “” 进行填充以保证每个块都是4个Base64字符。 举个例子假设要编码的数据是ABC对应的ASCII码为65、66、67转换成二进制分别是01000001、01000010、01000011。将这三个字节拼接在一起得到24位的二进制数然后按照上述步骤转换为Base64编码。最后得到的Base64编码为QUJD。 这个过程是可逆的也就是说可以通过反向的过程将Base64编码解码回原始的二进制数据。在实际应用中Base64编码常用于在文本协议中传输二进制数据或者将二进制数据嵌入到文本文件中。 三、base64开发实例 #include iostream #include cstring #include openssl/bio.h #include openssl/evp.h #include openssl/buffer.hstd::string base64_encode(const unsigned char* input, int length) {BIO* bio BIO_new(BIO_f_base64());BIO_set_flags(bio, BIO_FLAGS_BASE64_NO_NL);BIO* bmem BIO_new(BIO_s_mem());bio BIO_push(bio, bmem);BIO_write(bio, input, length);BIO_flush(bio);BUF_MEM* bptr;BIO_get_mem_ptr(bio, bptr);std::string result(bptr-data, bptr-length);BIO_free_all(bio);return result; }std::string base64_decode(const char* input) {BIO* bio BIO_new(BIO_f_base64());BIO_set_flags(bio, BIO_FLAGS_BASE64_NO_NL);BIO* bmem BIO_new_mem_buf(input, -1);bio BIO_push(bio, bmem);char buffer[1024];int length BIO_read(bio, buffer, sizeof(buffer));BIO_free_all(bio);return std::string(buffer, length); }int main() {const char* originalText Hello, Base64!;int originalLength std::strlen(originalText);// Base64 编码std::string encodedText base64_encode(reinterpret_castconst unsigned char*(originalText), originalLength);std::cout Base64 Encoded: encodedText std::endl;// Base64 解码std::string decodedText base64_decode(encodedText.c_str());std::cout Base64 Decoded: decodedText std::endl;return 0; } 编译 g main.cpp -o main -lssl -lcrypto运行结果如下 四、源码地址 https://gitcode.net/arv002/qt/-/tree/master/Openssl/hash/base64
http://www.pierceye.com/news/354763/

相关文章:

  • 自己做的网站添加交费功能合肥有什么好的网站建设公司好
  • 做网站品牌龙岩新增病例行动轨迹
  • 任家房网站建设郑州百度网站推广
  • 深圳建设网站的公司简介WordPress多功能投稿
  • 简述织梦网站上传及安怎样在网站上做免费的推广
  • 关于信用体系建设的网站wordpress新闻类模板下载
  • 免费行情软件网站下载大全爱学校vi设计案例
  • 网站外包优化怎样做免费抽皮肤的网站
  • 东八区网站建设网站源码在哪里
  • 重点建设专业 专题网站搜狗官方网站
  • 微信营销工具有哪些使用最佳搜索引擎优化工具
  • 网站推广意识薄弱wordpress授权协议
  • 用php做高中数学题库网站阿里网站建设教程
  • 大兴网站建设公司电话东莞企业网站制作怎么做
  • 网站维护有啥用2021跨境电商最火的产品
  • 专业的东莞网站排名wordpress 客户端使用
  • 做网站需要什么人才网站建设与规划案例
  • 你学做网站学了多久建设网站困难的解决办法
  • 东莞如何搭建网站建设做招聘信息的网站
  • 网站行业认证怎么做安卓开发技术
  • 泉州城乡住房建设厅网站网站运营方案ppt
  • 免费做网站wxp114五种常用的网站推广方法
  • 简单的网站建设找哪个公司新网站seo技术
  • 电子网址怎么创建下载优化大师app
  • 网站上传服务器教程wordpress 开启多用户
  • 做网站的公司重庆互联网营销方式
  • 在线探测网站开发语言东莞人才市场现场招聘会地址
  • 检测网站是否被挂黑链seo网站营销推广
  • 当今网站开发技术的现状自己做的网站怎么上排行榜
  • 外贸没有公司 如何做企业网站?成都市住房和城乡建设局官网查询