博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用openssl进行base64的编码与解码
阅读量:6260 次
发布时间:2019-06-22

本文共 1089 字,大约阅读时间需要 3 分钟。

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 }

 

转载地址:http://jahsa.baihongyu.com/

你可能感兴趣的文章
如何在excel单元格中插入图片批注
查看>>
Android 基础动画之补间动画详解
查看>>
业界 | 全球最大生物识别数据库被判定合法
查看>>
Hanlp等七种优秀的开源中文分词库推荐
查看>>
常见移动设备的 CSS3 Media Query 整理(iPhone/iPad/Galaxy/HTC One etc.)
查看>>
redis第二步(事务和锁)
查看>>
rufus:一款制作linux U盘启动的神器
查看>>
[动态代理三部曲:中] - 从动态代理,看Class文件结构定义
查看>>
函数式编程与面向对象编程[5]:编程的本质
查看>>
[Spring实战系列](9)装配集合
查看>>
vue需注意的地方
查看>>
搞定计算机网络面试,看这篇就够了
查看>>
原生开发移动web单页面(step by step)6——history api应用
查看>>
【iOS 开发】Xcode9 自动签名更新设备列表
查看>>
[Elasticsearch]Elasticsearch+kibana+marvel安装
查看>>
《Kotlin 程序设计》第四章 Kotlin 语法基础
查看>>
开源堡垒机 Jumpserver v1.4.8 发布 , Bug 修复版本
查看>>
(十五)Java并发性和多线程-死锁
查看>>
第1章 JVM语言家族概览 《Kotin 编程思想·实战》
查看>>
spring之HttpInvoker
查看>>