3 个版本 (重大更改)
使用旧的 Rust 2015
0.7.0 | 2021 年 12 月 29 日 |
---|---|
0.6.0 | 2021 年 10 月 28 日 |
0.5.0 | 2020 年 12 月 24 日 |
#2205 in 编码
290KB
7.5K SLoC
穆特器是一个将数据格式转换为其他格式(如十六进制、Base64 和 URI 编码)的工具。
使用
穆特器接收一系列字节(如 cat 作为文件名或从标准输入),然后输出一个字节序列到标准输出。字节序列通过 -c (--chain) 参数指定的编码进行修改,该参数指定要执行的编码。
例如,一个 -hex:base64
链会解码十六进制输入,然后以 Base64 编码数据。 base64:uri
将对数据进行 Base64 编码,然后进行 URI 编码,但 url64
只使用 URL 安全版本的 Base64 进行编码。一个 hash(sha256):hex
链会将输入数据哈希,然后以十六进制编码 SHA-256 哈希。
穆特器是用 Rust 编写的,支持 Rust 1.34.2 或更高版本。您可以通过运行 cargo build --release
来构建它。如果您想构建文档,请安装 Asciidoctor 和 GNU make,并输入 make all doc
,手册页将位于 doc/
中。帮助输出通常也很有用。
尽管穆特器缺少翻译,但它设计为可以进行本地化。如果您有兴趣提交翻译,请提出问题。
如果您正在寻找较旧的 Perl 版本,可以在 perl
分支中找到它。
示例
# URI-decode some data, then HTML-encode it
$ muter -c -uri:xml,html my-data >foo.html
# Generate a subresource integrity hash
$ printf 'sha256-'; \
curl -s https://code.jquery.com/jquery-3.2.1.js | muter -c hash,sha256:base64
sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=
# Encode a password for use with curl
$ curl https://user:$(printf 'very-complex/pass' | muter -c uri)@example.org
转换
以下转换可用,许多转换都有多个选项
-
ascii85
-
base16
-
base32
-
base32hex
-
base64
-
bubblebabble
-
checksum
-
crlf
-
deflate
-
form
-
gzip
-
hash
-
hex
-
identity
-
lf
-
modhex
-
quotedprintable
-
uri
-
url64
-
uuencode
-
vis
-
wrap
-
xml
-
zlib
有关可用转换的完整说明,请参阅 手册页。
如果您对新的转换感兴趣,请随时提出问题。请注意,我们试图确保转换是确定的,并且如果存在反向变体,则可以进行往返,但有时我们会做出例外。我们通常还希望解码器对所有编码器可以生成的变体进行编码,而无需任何参数。
名称
Muter这个词来自西班牙语动词mudar和法语动词muter,意思是变异,因为它的作用就是变异数据。
这个名字的发音是/ˈmjuːtər/(MEW-ter)。
依赖项
~13MB
~99K SLoC