2 releases
0.1.2 | Feb 2, 2025 |
---|---|
0.1.1 | Feb 2, 2025 |
#904 in Command line utilities
208 downloads per month
155KB
4.5K
SLoC
Unkr
unkr is a tool made to decrypt/encrypt using combinations of old school algorithms.
For decryptions I am also developing a bruteforce command.
See examples in documentation. (this README.md is used for tracking progress).
Use Cases
-
cargo run -- bruteforce --string STRING --clue clue --clue clue2
- use enhanced / encrypt methods when useful
-
cargo run -- encrypt --string HELLOHELLO -- cut:5 vigenere:KEY:ALPHABET transpose:12 swap:0:5:6:4:2:3:1
-
-
unkr decryptor <decryptor>
shows doc for decryptor -
unkr bruteforce --clues-file ./words
-
unkr bruteforce-combination --clue clue --string string -- permute:4 vigenere:2:3
https://kryptosfan.wordpress.com/k3/k3-solution-3/ http://kryptools.com/hints.htm
Caching
- save combinations in the form
./md5string/md5clues/{hits,done}
:- hits file line
vigenere:ABC:DEF join;RESULT
- done file line
vigenere join cut;vigenere:3:3
(only applying params) - (always save in done)
- hits file line
- partial cache
- Partial BruteForce
- First I do Permute length=3, then length=5 -> cache applies
- Partial Checkpoint
- When using Ctrl + C, write all current permutations to cache as
vigenere join cut;vigenere:3:3;partial vigenere:ABC:ALPHABET join cut:3
- When using Ctrl + C, write all current permutations to cache as
-
vigenere join cut;vigenere:3:3
- Partial BruteForce
Perf
- use a multiproducer channel to get hits ?
- https://patrickfreed.github.io/rust/2021/10/15/making-slow-rust-code-fast.html
TODO
-
combinator.rs
- clue,clue2 1,2
- cryptors
- fold
- enigma
-
echo HELLOTEST | cargo run -- decrypt -- enigma:B::I:0:II:0:III:0
-
- indexcrypt
- vigenere
- next impl
- asciimorse?
- permutations
- cut message in parts
- print better results (with values)
- finish deserialization for cryptors
- document shit
- harmonize method names
- fix test method names
- perfs monitoring
- multithreading
- profiling
- when a thread is done, reallocate from another
- move to
get_next
- read from stdin by default
- encrypt
- decrypt
- always test:
- all cryptors encrypt(decrypt())
- all cryptors readable
- decryptors docs
- bruteforce finishers?
- colors
- join
- bold
- useless combination (join join)
- NumberArgs -> usize
- Division dispatcher threads
- remove join?
- ASD coin
- numbers in chars ??
- fuzzer rules in CLI params
- use EnumIter everywhere ?
- https://github.com/ashvardanian/StringZilla
Dependencies
~6–15MB
~198K SLoC