Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
三雷科技
QT博客案例
提交
df1be31a
Q
QT博客案例
项目概览
三雷科技
/
QT博客案例
通知
1542
Star
47
Fork
34
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Q
QT博客案例
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
df1be31a
编写于
11月 11, 2023
作者:
A
arv000
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: 更新base64位源码地址
Log: Bug:
上级
2e41bea3
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
55 addition
and
0 deletion
+55
-0
Openssl/hash/base64/main.cpp
Openssl/hash/base64/main.cpp
+55
-0
未找到文件。
Openssl/hash/base64/main.cpp
0 → 100644
浏览文件 @
df1be31a
#include <iostream>
#include <cstring>
#include <openssl/bio.h>
#include <openssl/evp.h>
#include <openssl/buffer.h>
std
::
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_cast
<
const
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
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录