base64原理及命令使用

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

由于想在Linux上从迅雷里下东西,所以遇到了base64,顺便了解了一下。简单来说(不一定准确):base64是一个可以将二进制数据转化成[A-Za-z0-9+/]的字符串,常用于网页、邮件。

通常一个网页下载下来,离线打开,你可能会发现网页上的图片还在。但你搜遍整个网页都没有打到对应的二进制数据。原来是图片数据被转换成文本的形式。

base64的原理是将每3个字节用4个可打印的字符来表示。网上有很多原理的介绍:维基百科

我自己用自己的话来描述一下这个过程:每次取3个字节出来,组成一个24bits的数据(每个字节8bits*3=24bits)。再将这24bits的数据以6bits为一组分隔成4个组。每一组的数值范围为0~63。然后用"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"这64个字符来表示这个值。当然,按3个字节拆分,到最后来肯定会有不足3个的情况,那就填0再计算。在编码完成之后,用“=”的个数来表示最后是剩下的是一个字节还是两个字节或是没有剩。

原理介绍到这里,下面讲一下base64命令的使用方法:

加密字串:


$ echo -n "Hi, I am Hevake Lee" | base64

加密文件


$ base64 photo.jpg

命令执行完成后会在标准输出打印加密后的字串。如果需要保存,你是可以重定位到文件的。如:


$ base64 photo.jpg > photo.jpg.b64

解密方法与加密方法是一样的,只不过base64加一个'-d'参数表示解码。


目录
相关文章
一行代码 base64批量解密
一行代码 base64批量解密
131 0
|
3月前
|
Oracle Java 关系型数据库
简单记录在Linux上安装JDK环境的步骤,以及解决运行Java程序时出现Error Could not find or load main class XXX问题
本文记录了在Linux系统上安装JDK环境的步骤,并提供了解决运行Java程序时出现的"Error Could not find or load main class XXX"问题的方案,主要是通过重新配置和刷新JDK环境变量来解决。
137 0
|
5月前
|
存储 前端开发 数据安全/隐私保护
Base64详解:从编码原理到应用实践
Base64详解:从编码原理到应用实践
|
6月前
|
XML 存储 算法
BASE64的算法说明
【5月更文挑战第10天】BASE64的算法说明
57 3
|
5月前
|
Linux
Linux中的Base64编码与解码:`base64`命令详解
Linux的`base64`命令用于Base64编码和解码文本数据,常在邮件和HTTP中传输二进制信息。编码示例:`base64 input.txt`,解码示例:`base64 -d encoded.txt`或`echo "SGVsbG8sIFdvcmxkIQo=" | base64 -d`。注意,编码后数据会增大33%,且可能含换行符。广泛应用于多种系统和协议,如MIME。
|
监控 安全 Linux
docker 命令 --cap-add NET_ADMIN 什么作用
`--cap-add NET_ADMIN` 是 Docker 容器运行时的一个参数,用于添加网络管理员权限(NET_ADMIN capability)给容器。 在 Linux 系统中,每个进程都有特定的权限来执行特定的操作。网络管理员权限是一种较高级的权限,它允许容器内的进程执行一些需要网络配置和管理的操作,例如配置网络接口、修改路由表、设置防火墙规则等。 通过添加 `--cap-add NET_ADMIN` 参数,Docker 容器将获得网络管理员权限,使其能够执行更高级的网络操作。这对于某些特定的应用场景,如网络监控、网络测试等非常有用。 需要注意的是,使用网络管理员权限可能存在安全
1671 1
|
6月前
将图片(路径)转换为Base64 和 将base64转换为file类型
将图片(路径)转换为Base64 和 将base64转换为file类型
|
6月前
|
移动开发 算法 安全
安卓逆向 -- 算法基础(Base64与HEX)
安卓逆向 -- 算法基础(Base64与HEX)
37 1
|
6月前
|
存储 前端开发 JavaScript
前端base64转file文件方法
前端base64转file文件方法
685 0
|
6月前
|
存储 算法 安全
C/C++学习 -- Base64算法
C/C++学习 -- Base64算法
66 0