利用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 }
复制代码
复制代码

 

目录
相关文章
|
数据库 数据库管理
sqlite3 插入数据
sqlite3 插入数据
248 0
交叉证书
## 证书4要素 pubkey(公钥) ,有一个其一一对应的私钥,由证书拥有者保存。 subject(名字),可以理解为证书的名字,你可以理解为 网站的域名。 issuer(颁发者的名字),即上级证书的subject。 signature(签名) ,上级证书使用私钥对当前证书进行签名的值。 ## 证书签名 假设 有 3 级 证书 ![image.png](
4815 0
|
缓存 应用服务中间件 nginx
Web服务器的缓存机制与内容分发网络(CDN)
【8月更文第28天】随着互联网应用的发展,用户对网站响应速度的要求越来越高。为了提升用户体验,Web服务器通常会采用多种技术手段来优化页面加载速度,其中最重要的两种技术就是缓存机制和内容分发网络(CDN)。本文将深入探讨这两种技术的工作原理及其实现方法,并通过具体的代码示例加以说明。
993 1
|
9月前
|
消息中间件 机器学习/深度学习 人工智能
AI赋能运维:实现运维任务的智能化自动分配
AI赋能运维:实现运维任务的智能化自动分配
833 24
|
机器学习/深度学习 人工智能 自然语言处理
2024年5月大语言模型论文推荐:模型优化、缩放到推理、基准测试和增强性能
本文汇总了2024年5月发布的七篇重要大语言模型论文,涉及模型优化、缩放、推理及性能增强。
1165 2
|
应用服务中间件 nginx
nginx 设置开机自动启动脚本
Nginx 是一个很强大的高性能Web和反向代理服务器。虽然使用命令行可以对nginx进行各种操作,比如启动等,但是还是根据不太方便。下面介绍在Linux下安装后,如何设置开机自启动。 首先,在linux系统的/etc/init.
2236 0
|
编解码
一文搞懂Base64编解码
一文搞懂Base64编解码
770 0
|
机器学习/深度学习 人工智能 算法
基于BP神经网络的手写数字识别(Matlab代码实现)
基于BP神经网络的手写数字识别(Matlab代码实现)
630 0
|
监控 Cloud Native Java
EDAS(Enterprise Distributed Application Service
EDAS(Enterprise Distributed Application Service)是阿里云推出的一款云原生应用管理平台,可以帮助企业快速构建、部署和管理云原生应用。EDAS提供了一系列的服务,包括应用部署、配置管理、监控告警、日志查询、分布式跟踪等,可以帮助企业在云上快速构建稳定、高效、安全的应用系统。
575 0