【发布时间】:2021-12-20 08:17:03
【问题描述】:
base32 和 base64 CLI 实用程序都是 gnu coreutils 的一部分。那么,为什么不添加一个 base16 呢?
【问题讨论】:
标签: linux gnu-coreutils
base32 和 base64 CLI 实用程序都是 gnu coreutils 的一部分。那么,为什么不添加一个 base16 呢?
【问题讨论】:
标签: linux gnu-coreutils
写了一个脚本,也有同样的想法……
刚刚查看了 coreutils 中的新闻。 https://github.com/coreutils/coreutils/blob/master/NEWS
看起来他们在 8.31 (2019-03-10) 版本中添加了 basenc
** 新命令 - 添加了 basenc 以补充现有的 base64、base32 命令, 并使用各种常见编码对可打印文本进行编码和解码: base64,base64url,base32,base32hex,base16,base2,z85.
拥有一个命令是有意义的...我在过去 xxd、hexdump 等中以其他方式完成了此操作...
所以他们确实做到了。只需使用basenc --base16
*编辑,其实这三个源代码都是一样的 https://github.com/coreutils/coreutils/blob/master/src/local.mk
src_base64_SOURCES = src/basenc.c
src_base64_CPPFLAGS = -DBASE_TYPE=64 $(AM_CPPFLAGS)
src_base32_SOURCES = src/basenc.c
src_base32_CPPFLAGS = -DBASE_TYPE=32 $(AM_CPPFLAGS)
src_basenc_SOURCES = src/basenc.c
src_basenc_CPPFLAGS = -DBASE_TYPE=42 $(AM_CPPFLAGS)
【讨论】:
GNU coreutils 是免费的。这是人们非常非常努力的工作,他们正在免费做。您完全免费使用它。你捐了多少钱?捐赠它们。如果你想要什么,就付钱给他们。
为什么不将 base16 添加到 coreutils 中?
它需要工作,包括实施,但主要是永无止境的维护。如果不需要某些东西,最好不要添加它并减少工作并专注于重要的事情。维护当前命令,以便它们与所有系统保持同步并保持一致和工作,这一点更为重要。甚至有人说,(尤其是在开源领域)项目负责人最重要的是决定拒绝哪些功能,而不是添加哪些功能。
那么,在 GNU coreutils 中实现 然后无休止地维护 base16 实用程序,您将支付多少费用?
【讨论】:
在我看来,这是因为十六进制编码使被编码的数据量增加了一倍。这种方法被认为不合适。
P.S.Here 是提供 base16 编码的控制台工具的 C# 示例。应用程序输入可以从文件、命令行、键盘或根据所谓的“Unix 方式”软件重定向来自另一个控制台应用程序的输出来获得。不幸的是,它使用 Windows API,但可以针对 Linux 重新设计。
【讨论】: