利用openssl进行base64的编码与解码
openssl可以直接使用命令对文件件进行base64的编码与解码,利用openssl提供的API同样可以做到这一点。
废话不多说,直接上代码了。需要注意的是通过base64编码后的字符每64个字节都会有一个换行符的存在。
1 static int base64_encode(char *str,int str_len,char *encode,int encode_len){ 2 BIO *bmem,*b64; 3 BUF_MEM *bptr; 4 b64=BIO_new(BIO_f_base64()); 5 bmem=BIO_new(BIO_s_mem()); 6 b64=BIO_push(b64,bmem); 7 BIO_write(b64,str,str_len); //encode 8 BIO_flush(b64); 9 BIO_get_mem_ptr(b64,&bptr);10 if(bptr->length>encode_len){11 DPRINTF("encode_len too small\n");12 return -1; 13 } 14 encode_len=bptr->length;15 memcpy(encode,bptr->data,bptr->length);16 // write(1,encode,bptr->length);17 BIO_free_all(b64);18 return encode_len;19 }20 21 static int base64_decode(char *str,int str_len,char *decode,int decode_buffer_len){22 int len=0;23 BIO *b64,*bmem;24 b64=BIO_new(BIO_f_base64());25 bmem=BIO_new_mem_buf(str,str_len);26 bmem=BIO_push(b64,bmem);27 len=BIO_read(bmem,decode,str_len);28 decode[len]=0;29 BIO_free_all(bmem);30 return 0;31 }
转载于:https://www.cnblogs.com/aLittleBitCool/archive/2011/10/06/2200095.html
利用openssl进行base64的编码与解码相关推荐
- php base64解码,PHP Base64 中英文编码 JavaScript 解码
最新PHP Base64 中英文编码 JavaScript 解码 以下是三零网为大家整理的最新PHP Base64 中英文编码 JavaScript 解码的文章,希望大家能够喜欢! function ...
- javascript中的Base64.UTF8编码与解码详解
javascript中的Base64.UTF8编码与解码详解 本文给大家介绍的是javascript中的Base64.UTF8编码与解码的函数源码分享以及使用范例,十分实用,推荐给小伙伴们,希望大家能 ...
- 彻底弄懂base64的编码与解码原理
作者介绍 背景 base64的编码原理网上讲解较多,但解码原理讲解较少,并且没有对其中的内部实现原理进行剖析.想要彻底了解base64的编码与解码原理,请耐心看完此文,你一定会有所收获. 涉及算法与逻 ...
- img图片的预览和下载(iframe基本使用),图片转file格式,file文件转base64格式,base64的编码和解码
目录 一.根据后端接口返回的URL下载和预览图片 1.调用下载图片函数实现下载图片 2.弹出另一个页面,实现预览图片. 3.不弹出另一个页面,实现下载/预览图片(iframe方式) 4.动态创建ifr ...
- openssl算法 —— 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
openssl 加密字符串的方法: 一.利用openssl命令进行BASE64编码解码(base64 encode/decode): 1. BASE64编码命令 对字符串'abc'进行base64编码 ...
- atob()和btoa() 进行base64的编码和解码
编码: 解码:
- btoa java_javascript atob()函数和 btoa()函数-Base64的编码与解码-Go语言中文社区
在 JavaScript 中,有两个函数被分别用来处理解码和编码 base64 字符串: atob() //ASCII to Base64 btoa() //Base64 to ASCII atob( ...
- javascript atob()函数和 btoa()函数-Base64的编码与解码
在 JavaScript 中,有两个函数被分别用来处理解码和编码 base64 字符串: atob() //ASCII to Base64 btoa() //Base64 to ASCII atob( ...
- js中使用btoa和atob进行Base64的编码和解码
window.atob(string):解码 用来解码一个已经被base-64编码过的字符串.(参数string: 必需是一个通过 btoa() 方法编码的字符串) window.btoa(strin ...
- Base64的编码和解码
为什么要使用Base64? 在设计这个编码的时候,我想设计人员最主要考虑了3个问题: 1.是否加密? 2.加密算法复杂程度和效率 3.如何处理传输? 加密是肯定的,但是加密的目的不是让用户发送非常安全 ...
最新文章
- GO Negotiation流程分析
- 通过a标签在页面上显示视频网站中的视频
- CS229 6.6 Neurons Networks PCA主成分分析
- Ubuntu之镜像iso安装系统
- php 文件上传页面模板,PHP文件上传类实例详解
- 十六、数据变换和数据离散化
- 设计模式之空对象模式
- PHP | 计算字符串中的单词总数
- CSV Data Set Config设置
- php计算一段时间工作日,PHP计算8小时工作日的一半
- Windows Server 2016 AD中新建组织单位、组、用户
- Android精讲--界面编程2(布局管理器)
- 第 4 章 部署 Enterprise Library
- Handler 消息传递机制
- ORACLE 登录相关的信息
- android studio | openGL es 3.0增强现实(AR)开发 (4) 绘制简单的2D图形、显示、旋转
- 几种分段多项式曲线插值(拟合)的方式(含贝塞尔曲线和B样条[B-spline])
- 苹果测试应用可一键生成ios测试UDID证书,IOS怎么安装APP?怎么测试APP?一键搞定
- Win7快速启动栏恢复方法
- 破解光纤入户,电信送的上海贝尔RG2000-CA,过程说明·~~
热门文章
- Hive 数据质量检测
- kafka/producer.lua:168: attempt to perform arithme
- 关于在Windows64上编译程序出现相邻变量地址偏移相差32字节问题
- QT_继承ApplicationWindow控件的C++与QML交互
- JEPLUS之特殊字段类型的使用——JEPLUS软件快速开发平台
- Ionic 学习笔记
- NSURLSession访问HTTPS网站
- [Java] Maven 建立 Spring MVC 工程
- row_number() over
- IOS开发--仿制网易新闻