前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >全网最优质的Base64 编码和解码教程,附6个示例!

全网最优质的Base64 编码和解码教程,附6个示例!

原创
作者头像
网络技术联盟站
修改2021-11-20 20:54:12
3.5K0
修改2021-11-20 20:54:12
举报

base64 编码可以将二进制数据转换为文本格式,并且能够在任何通信介质上传输数据。

这个编码应用场景非常多,比如电子邮件的加密等。

Base64 方法通常是一种二进制到文本编码方案,它表示 8 字节二进制数据到 ASCII 字符串格式,在各种媒体之间传输或引导数据时,有很多优点,特别是对于文本的支持。

根据 Base64 表示表,二进制数据可以转换为 64 种不同的 ASCII 字符,这种转换易于传输和打印。

使用字母 A 到 Z、a 到 Z、0 到 9 和 + 和 /,总共 64 个 ASCII 字符来表示从 000000 到 111111 的二进制,每个非最终 Base64 数字正好代表 6 位数据。

Base64 索引表
Base64 索引表

Bash base64 编码和解码

语法
代码语言:txt
复制
base64 [参数] [输入文件] [输出文件]
  • 参数:参数如下。
  • 输入文件:可以从标准输入(如命令行)或文件中获取输入。
  • 输出文件:可以将输出重定向到标准输出,如终端或文件。
(1)参数 -e–encode

用于对来自标准输入或任何文件的任何数据进行编码,是默认选项。

(2)参数 -d–decode

用于解码来自标准输入或任何文件的任何编码数据。

(3)参数 -n–noerrcheck

默认情况下,base64 在解码任何数据时都会检查错误,可以使用 –n 或 –noerrcheck 选项在解码时忽略检查。

(4)参数 -i--ignore-garbage

用于在解码时忽略非字母字符。

(5)参数 -u-help

用于获取有关此命令的用法的信息。

示例 1 – 基本编码

在 Linux 中,默认安装 base64 包,因此,您可以轻松地在命令行使用它,要简单地对字符串或文本进行编码,可以通过管道将其传递到命令行并获取编码后的文本。

在下面示例中,字符串 wljslmz.cn 被编码为 base64。

代码语言:txt
复制
echo "wljslmz.cn" | base64

输出:

代码语言:txt
复制
d2xqc2xtei5jbgo=
解释

编码方法使用几个步骤来转换输入:

  • 输入字符被转换为 8 位二进制值
  • 整组二进制字符串拆分为 6 位二进制值
  • 转换为十进制
  • 每个十进制值都通过 base64 索引表转换为 base64 字符

示例 2 – 基本解码

要解码字符串,只需使用参数 –decode 将编码值传递给 base64,它解码刚刚输入的字符串。

代码语言:txt
复制
echo "d2xqc2xtei5jbgo=" | base64 --decode
bash base64 编码和解码
bash base64 编码和解码

示例 3 – 编码文本文件

可以使用相同的命令对文本文件进行编码并将输出重定向到另一个文本文件:

代码语言:txt
复制
base64 wljslmz.txt  > wljslmz-encode.txt
编码文本文件
编码文本文件

示例 4 – 解码文本文件

要解码使用 base64 编码的文本文件,只需使用 –decode 或 -d 开关并传递文本文件名。

代码语言:txt
复制
base64 -d wljslmz-encode.txt

示例 5 – 对来自用户的自定义输入进行编码

使用 bash shell 编程,您可以通过终端从用户那里获取输入并对其进行编码,但是为此您需要编写一个简单的 shell 脚本并在授予可执行权限后执行它。

以下例子可以做参考:

代码语言:txt
复制
#!/bin/bash
#欢迎来到运维漫谈!!!
#可以输入wljslmz.cn
echo "请输入需要base64编码的字符::"
read input_text
output_text=`echo -n $input_text | base64`
echo "Base64编码后字符: $output_text"
自定义输入 – 使用脚本进行 base64 编码和解码
自定义输入 – 使用脚本进行 base64 编码和解码

示例 6 – 使用 base64 的简单身份验证

使用上面的编码和解码方法,就可以实现一个简单的认证系统。

您可以要求用户输入密码或密码,然后将密码存储到文件中或进行动态比较,如果存储的编码字符串与用户输入的编码文本匹配,则用户通过身份验证。

这是一种非常简单的验证身份验证方式,有时对于简单的商业案例很有用。

代码语言:txt
复制
#!/bin/bash
#欢迎来到运维漫谈,这是一个简单的脚本,用base64编码
#使用debugpoint.cn为例
echo "验证你的密码"
read pwd1
decoded_text=`echo 'd2xqc2xtei5jbg==' | base64 --decode`
if [[ $pwd1 == $decoded_text ]]
then
    echo "主人你好!"
else
    echo "你是坏人,验证不通过!!!"
fi

下面来试试这个脚本:

总结

以上我们通过几个例子给大家详细介绍了base64编码的原理与使用,想必只要好好看上文,一定会有所收获,心动不如手动,下面大家就打开命令行,疯狂的敲吧。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Bash base64 编码和解码
  • 示例 1 – 基本编码
  • 示例 2 – 基本解码
  • 示例 3 – 编码文本文件
  • 示例 4 – 解码文本文件
  • 示例 5 – 对来自用户的自定义输入进行编码
  • 示例 6 – 使用 base64 的简单身份验证
  • 总结
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档