#字母 #有效 #输入 #排列 #生成 #编码 #base64

app baseperm

生成编码输入有效排列的工具

4 个版本

0.1.3 2020 年 6 月 4 日
0.1.2 2020 年 1 月 28 日
0.1.1 2020 年 1 月 28 日
0.1.0 2020 年 1 月 28 日

#18 in #排列

自定义许可

11KB
177

baseperm

license Build Status

一个用于生成 baseN 码字母字符串有效排列的小工具。

操作理论

许多流行的二进制到可打印序列化/编码方案使用其字母的位数不允许 8 位字节均匀地放入一个符号(或多个符号)中

因此,这些编码采用了填充方案,以便将它们的输出舍入到 8 位的倍数。

baseperm 通过在这些编码中操作填充位来产生不同的、有效的编码形式,这些形式解码为相同的输入。

为什么?

程序员经常犯的一个错误是假设编码表示与它们的输入有一对一的对应关系。这会导致各种有趣、可能可利用的错误

  • 由于对序列化形式的依赖而绕过速率限制

  • 去重和复用绕过

  • 强制字典冲突

安装

baseperm 是一个单独的命令行程序。您可以使用 cargo 安装它

cargo install baseperm

或者本地构建它

git clone https://github.com/woodruffw/baseperm && cd baseperm
cargo build

用法

basepermstdin 读取排列候选者,并将所有排列等价形式写入 stdout,每行一个。原始输入也包含在输出中,默认为 (RFC4648) base64。

echo "hello!" | base64 | baseperm

可以使用 -e--encoding 指定其他编码。

echo "hello!" | base32 | baseperm -e base32

有关支持编码的完整列表,请参阅 baseperm -h

依赖项

~3MB
~59K SLoC