Linux 中 base64 命令使用方法
Linux 的 base64 命令用于 编码 / 解码文件或标准输入输出。
base64 命令详解
$ base64 --help
Usage: base64 [OPTION]... [FILE]
Base64 encode or decode FILE, or standard input, to standard output.
-d, --decode decode data
-i, --ignore-garbage when decoding, ignore non-alphabet characters
-w, --wrap=COLS wrap encoded lines after COLS character (default 76).
Use 0 to disable line wrapping
--help display this help and exit
--version output version information and exit
With no FILE, or when FILE is -, read standard input.
The data are encoded as described for the base64 alphabet in RFC 3548.
When decoding, the input may contain newlines in addition to the bytes of
the formal base64 alphabet. Use --ignore-garbage to attempt to recover
from any other non-alphabet bytes in the encoded stream.
- -d, –decode 解码数据
- -i, –ignore-garbag 解码时忽略非字母字符
- -w, –wrap = 字符数 在指定的字符数后自动换行 (默认为 76),0 为禁用自动换行
- --help 显示此帮助信息并退出
- --version 显示版本信息并退出
如果没有指定文件,或者文件为”-“,则从标准输入读取。
数据以 RFC 3548 规定的 Base64 字母格式进行编码。 解码时,输入数据 (加密流) 可能包含一些非有效 Base64 字符的新行字符。可以尝试用 –ignore-garbage 选项来恢复加密流中任何非 base64 字符。
字符串加密解密
加密示例:
$ echo testbase64 | base64
dGVzdGJhc2U2NAo=
解密示例:
$ echo dGVzdGJhc2U2NAo= | base64 -d
testbase64
文件内容加密
文件示例:
$ cat testfile
testbase64
给文件 file 进行 base64 编码,并打印到标准输出
$ base64 testfile
dGVzdGJhc2U2NAo=
$ cat testfile | base64
dGVzdGJhc2U2NAo=
标准输入加密
输入 testbase64,回车,然后按 Ctrl+D 结束文件输入的。
$ base64
testbase64
dGVzdGJhc2U2NAo=
如果输入 testbase64,不输入回车,连续输入两次 Ctrl+D,效果如下:
$ base64
testbase64dGVzdGJhc2U2NA==
可以发现,这个结果跟前面 cat testfile
和输入 testbase64
按回车再按 Ctrl+D 的情况是不一样的。
echo -n 选项没有输出字符串结尾的 \n
换行字符,因此字符串 testbase64
精确的 base64 编码是 dGVzdGJhc2U2NA==
$ echo -n testbase64 | base64
dGVzdGJhc2U2NA==
Java 验证
import java.util.Base64;
public static String encoder(String str) {
return new String(Base64.getEncoder().encode(str.getBytes()));
}
public static String decode(String str) {
return new String(Base64.getDecoder().decode(str));
}
encoder("testbase64"); // dGVzdGJhc2U2NA==
decode("dGVzdGJhc2U2NA=="); // testbase64
encoder("testbase64\n"); // dGVzdGJhc2U2NAo=
decode("dGVzdGJhc2U2NAo="); // testbase64+换行符
相关文章