#data #hex #format #byte #converting #transform

bin+lib 穆特器

在不同格式和编码之间转换数据的工具

3 个版本 (重大更改)

使用旧的 Rust 2015

0.7.0 2021 年 12 月 29 日
0.6.0 2021 年 10 月 28 日
0.5.0 2020 年 12 月 24 日

#2205 in 编码

MIT 许可证

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