1 个不稳定版本
0.1.0 | 2023年10月22日 |
---|
#526 in 配置
175KB
603 行
shark
这是一个名为“1942年鲨鱼黑障”的CLI Enigma工具,当时Kriegsmarine在其Enigma机器中增加了第四个转子,使布莱切利公园在近10个月内无法破解大西洋U艇通信。
安装
系统范围
$ curl -sSL https://github.com/mattlianje/shark/blob/main/install.sh | bash
# Checks system wide install was successful
$ enigma --help
构建源代码
$ git clone https://github.com/mattlianje/shark.git
$ cd shark
$ cargo build --release
$ echo "HELLOWORLD" | ./target/release/enigma
# Will output
ZWMRGTTIIZ
使用
# Chain enigma with other commands
$ echo "HELLO" | enigma | grep "FOO"
# Use your custom settings
$ cat config.json
{
"rotors": [
{"type_": "type_i", "position": "A", "ring_setting": "A"},
{"type_": "type_ii", "position": "B", "ring_setting": "A"},
{"type_": "type_iii", "position": "C", "ring_setting": "A"}
],
"reflector": "ukw_b",
"plugboard": [{"from": "A", "to": "B"}]
}
# Use these settings easily
$ enigma --input plaintext.txt --config config.json > encrypted.txt
功能/目标
- UNIX哲学遵循:Shark专注于做好一件事:加密。
- 惊人的速度:主要为了学习Rust而构建,我将继续降低
shark
的内存占用并利用Rust的并发性。Shark以块的形式处理数据,使其适用于大数据集,在5MB输入上比其他C++ cli enigmas快50多倍。
5MB数据的加密时间
工具 | 时间(毫秒) |
---|---|
shark | 53 |
C++ cli | 2693 |
- 无限流能力:设计时考虑到流数据,Shark可以处理无限数据流,允许进行实时加密任务。
依赖项
~1.8–3MB
~54K SLoC