2019独角兽企业重金招聘Python工程师标准>>>

char *base64_encode(char *binData, char *base64, int binLength)
{int i = 0;int j = 0;int current = 0;for (i = 0; i < binLength; i += 3) {//获取第一个6位current = (*(binData+i) >> 2) & 0x3F;*(base64 + j++) = base64char[current];//获取第二个6位的前两位current = (*(binData+i) << 4) & 0x30;//如果只有一个字符,那么需要做特殊处理if (binLength <= (i+1)) {*(base64 + j++) = base64char[current];*(base64 + j++) = '=';*(base64 + j++) = '=';break;}//获取第二个6位的后四位current |= (*(binData+i+1) >> 4 ) & 0xf;*(base64 + j++) = base64char[current];//获取第三个6位的前四位current = (*(binData+i+1) << 2 ) & 0x3c;if (binLength <= (i+2)) {*(base64 + j++) = base64char[current];*(base64 + j++) = '=';break;}//获取第三个6位的后两位current |= (*(binData+i+2) >> 6) & 0x03;*(base64 + j++) = base64char[current];//获取第四个6位current = *(binData+i+2) & 0x3F;*(base64 + j++) = base64char[current];}*(base64+j) = '\0';return base64;
}char *base64_decode(char const *base64Str, char *debase64Str, int encodeStrLen)
{int i = 0;int j = 0;int k = 0;char temp[4] = "";for (i = 0; i < encodeStrLen; i += 4) {for (j = 0; j < 64 ; j++) {if (*(base64Str + i) == base64char[j]) {temp[0] = j;}}for (j = 0; j < 64 ; j++) {if (*(base64Str + i + 1) == base64char[j]) {temp[1] = j;}}for (j = 0; j < 64 ; j++) {if (*(base64Str + i + 2) == base64char[j]) {temp[2] = j;}}for (j = 0; j < 64 ; j++) {if (*(base64Str + i + 3) == base64char[j]) {temp[3] = j;}}*(debase64Str + k++) = ((temp[0] << 2) & 0xFC) | ((temp[1]>>4) & 0x03);if ( *(base64Str + i + 2)  == '=' )break;*(debase64Str + k++) = ((temp[1] << 4) & 0xF0) | ((temp[2]>>2) & 0x0F);if ( *(base64Str + i + 3) == '=' )break;*(debase64Str + k++) = ((temp[2] << 6) & 0xF0) | (temp[3] & 0x3F);}return debase64Str;
}

转载于:https://my.oschina.net/u/195896/blog/338959

C语言实现base64编码,base64解码相关推荐

  1. 详解Base64编码和解码

    Base64是最常用的编码之一,比如开发中用于传递参数.现代浏览器中的<img />标签直接通过Base64字符串来渲染图片以及用于邮件中等等.Base64编码在RFC2045中定义,它被 ...

  2. Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式

    Python 对图像进行base64编码及解码读取为numpy.opencv.matplot需要的格式 1. 效果图 2. 源码 参考 这篇博客将介绍Python如何对图像进行base64编解码及读取 ...

  3. js php base64,JavaScript实现Base64编码与解码的代码详解

    本篇文章给大家分享的是jJavaScript实现Base64编码与解码的代码详解,内容挺不错的,希望可以帮助到有需要的朋友 一.加密解密方法使用//1.加密 var str = '124中文内容'; ...

  4. Base64编码和解码

    Base64编码和解码 DES加密后密文长度是8个整数倍 加密后比明文长度变长,所以编码表找不到对应字符,乱码 使用Base64编码和解密:从Apache现在 1.加密后密文使用Base64编码 2. ...

  5. java解码base64的png图片_使用PHP对图片进行base64编码和解码(png、jpg,声音、视频)...

    为什么要对图片base64编码 base64是网络上最常见的传输8Bit字节代码的编码方式之一.base64主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输.由于一些二进制字符在传输 ...

  6. mysql base64 乱码_PHP base64编码后解码乱码的解决办法

    在用PHP做东西的时候发现了一个问题,可以简单的归结为乱码的问题,但是这个问题不是函数本身造成的.来看看罪魁祸首是谁. 嫌疑人:base64_encode 和 base64_decode 罪行:我写了 ...

  7. android Java BASE64编码和解码二:图片的编码和解码

    1.准备工作 (1)在项目中集成 Base64 代码,集成方法见第一篇博文:android Java BASE64编码和解码一:基础 (2)添加 ImgHelper 工具类 package com.a ...

  8. Linux上的js解码,使用JavaScript实现Base64编码与解码

    我们知道,浏览器的window对象提供有window.atob()和window.btoa()方法可以对字符串进行Base64编码和解码. console.log(window.btoa(window ...

  9. Java:URLEncoder、URLDecoder、Base64编码与解码

    1. URL 主要用来http get请求url不能传输中文参数问题.http请求是不接受中文参数的 1.1 URLEncoder编码 使用指定的编码机制将字符串转换为 application/x-w ...

  10. 【Python】base64模块对图片进行base64编码和解码

    图片的base64编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址. 这样做有什么意义呢?我们知道,我们所看到的网页上的每一个图片,都是需要消耗一个 http 请求下载而来的. 没 ...

最新文章

  1. 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)
  2. ESP32开发板 V1.0.0 Rev1 wifi 蓝牙4MB FLASH MicroPython
  3. python图像拼接过渡自然_python实现图像拼接功能
  4. mysql物理优化_mysql物理优化器代价模型分析【原创】
  5. 数字笔记-Notion使用教程
  6. 重磅 CV、NLP 算法赛,科大讯飞2020 A.I.开发者大赛正式启动!
  7. Silverlight 4.0 Accordion 解决ScrollViewer 的问题
  8. 黑客购买恶意软件攻击航空航天和交通行业,潜伏5年+
  9. 如何把jpg转换成word文档
  10. SCI分区及影响因子查看方法
  11. cpu真假有没有装机测试软件,有了她装机被骗很难 实用电脑检测软件推荐
  12. 利用python爬虫进行彼岸网图库图片的抓取(bs4)
  13. TP6.0 一对一模型关联 hasOne
  14. 新华DCS系统MODBUS通讯仿真测试方法介绍
  15. 安卓psp模拟器联机教程_谁知道手机版的ppsspp模拟器怎么联机啊?
  16. react-native实现微信分享和微信支付(安卓端)
  17. Final阶段基于NABCD评论作品
  18. 北京东物流,南顺丰速运
  19. 01-初识Node.js
  20. 使用cmd命令笔记本电池查看电池寿命

热门文章

  1. Eclipse集成Git插件及使用
  2. Yii Framework2.0开发教程(8)输入验证
  3. configure: error: gperf is needed
  4. 庆贺:上传资源时已支持不允许动态调分
  5. 库存在,编译或运行时提示找不到,要配置LD_LIBRARY_PATH
  6. 文字处理技术:WORD也在不断变化中
  7. JAVA反射性能约慢三个量级
  8. 窗台上晒了一本书,三个人问了三个问题
  9. Perhaps you should add the directory containing libpcre.pc to the PKG_CONFIG_PATH
  10. LINUX编译opencv