https://github.com/alex-snd/vigener
π The project is intended for convenient key recovery from the ciphertext obtained using the VigenΓ¨re cipher.
https://github.com/alex-snd/vigener
cryptography
Last synced: 27 days ago
JSON representation
π The project is intended for convenient key recovery from the ciphertext obtained using the VigenΓ¨re cipher.
- Host: GitHub
- URL: https://github.com/alex-snd/vigener
- Owner: alex-snd
- License: apache-2.0
- Created: 2021-01-09T13:13:04.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-02-06T08:49:43.000Z (over 5 years ago)
- Last Synced: 2025-02-25T09:29:22.560Z (over 1 year ago)
- Topics: cryptography
- Language: C++
- Homepage:
- Size: 771 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Vigener
ΠΡΠΎΠ΅ΠΊΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ° ΠΏΠΎ ΡΠΈΡΡΡΠ΅ΠΊΡΡΡ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΌΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΈΡΡΠ° [ΠΠΈΠΆΠ΅Π½Π΅ΡΠ°](https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher).
## Building
ΠΠ»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ±ΠΎΡΠΊΠΈ CMake Π²Π΅ΡΡΠΈΠΈ Π½Π΅ Π½ΠΈΠΆΠ΅ 3.19.2, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ Π½Π° [ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅](https://cmake.org/).
```shell
> mkdir build && cd build
> cmake ..
> cmake --build . --config [Debug | Coverage | Release]
```
## Usage
```shell
> Vigener -h
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅: Vigener -i [ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ Ρ ΡΠΈΡΡΡΠ΅ΠΊΡΡΠΎΠΌ] -ia [ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ Ρ Π°Π½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ]
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
-i ΠΠ°Π΄Π°Π΅Ρ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ Ρ ΡΠΈΡΡΡΠ΅ΠΊΡΡΠΎΠΌ
-ia ΠΠ°Π΄Π°Π΅Ρ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ Ρ Π°Π½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ
-o ΠΠ°Π΄Π°Π΅Ρ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ Π΄Π»Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - ΠΏΡΡΡ ΡΠ°ΠΉΠ»Π° ΡΠΈΡΡΡΠ΅ΠΊΡΡΠ° Ρ ΠΌΠ΅ΡΠΊΠΎΠΉ {processed}
-a ΠΠ°Π΄Π°Π΅Ρ Π°Π»ΡΠ°Π²ΠΈΡ ΡΠΈΡΡΡΠ΅ΠΊΡΡΠ°. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΠ°
-af ΠΠ°Π΄Π°Π΅Ρ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ Ρ Π°Π»ΡΠ°Π²ΠΈΡΠΎΠΌ ΡΠΈΡΡΡΠ΅ΠΊΡΡΠ°
-t ΠΠ°Π΄Π°Π΅Ρ ΠΏΠΎΡΠΎΠ³ Π΄Π»Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 6
-k ΠΠ°Π΄Π°Π΅Ρ Π΄Π»ΠΈΠ½Ρ ΠΊΠ»ΡΡΠ°
-mk ΠΠ°Π΄Π°Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π΄Π»ΠΈΠ½Ρ ΠΊΠ»ΡΡΠ°
ΠΡΠΈ Π²Π²ΠΎΠ΄Π΅ Π½ΠΎΠΌΠ΅ΡΠ° Π³ΡΡΠΏΠΏΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
0: Π²ΡΡ
ΠΎΠ΄ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΡ. Ctrl + C - Π²ΡΡ
ΠΎΠ΄ Π±Π΅Π· ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°
-1: Π²ΡΠ²Π΅ΡΡΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΈΡΡΡΠ΅ΠΊΡΡ ΠΏΡΠΈ ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅
-2: ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΠΌΠ΅Π½Ρ ΡΠ΄Π²ΠΈΠ³ΠΎΠ² Π² Π³ΡΡΠΏΠΏΠ°Ρ
. ΠΡΠΈ Π²Π²ΠΎΠ΄Π΅ ΡΠ΄Π²ΠΈΠ³Π° Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π½ΠΎΠΌΠ΅Ρ Π³ΡΡΠΏΠΏΡ,
Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΠ»Ρ Π²ΡΡ
ΠΎΠ΄Π° ΠΈΠ· ΡΠ΅ΠΆΠΈΠΌΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²Π²Π΅ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0 Π² ΠΏΠΎΠ»Π΅ Π½ΠΎΠΌΠ΅ΡΠ° Π³ΡΡΠΏΠΏΡ.
ΠΡΠΈ Π²Π²ΠΎΠ΄Π΅ ΡΠ΄Π²ΠΈΠ³Π° Π³ΡΡΠΏΠΏΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ
ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ Π²ΠΏΡΠ°Π²ΠΎ ΠΈΠ»ΠΈ Π²Π»Π΅Π²ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²Π΅Π½Π½ΠΎ.
ΠΠ»Ρ Π²ΡΡ
ΠΎΠ΄Π° ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π³ΡΡΠΏΠΏΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²Π²Π΅ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0 Π² ΠΏΠΎΠ»Π΅ ΡΠ΄Π²ΠΈΠ³Π°.
```
## Example
Π ΠΏΠ°ΠΏΠΊΠ΅ tests ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΡΠ°ΠΉΠ» 'Encrypted text.txt', ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ ΡΠΈΡΡΡΠ΅ΠΊΡΡ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΈΡΡΠ° ΠΠΈΠΆΠ΅Π½Π΅ΡΠ° Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΊΠ»ΡΡΠ° ΡΠ°Π²Π½ΡΠΌ 7. Π’Π°ΠΊΠΆΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ΅ tests ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΡΠ°ΠΉΠ» 'Analytical text.txt' Ρ Π°Π½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ.
```shell
> Vigener -i "tests/Encrypted text.txt" -ia "tests/Analytical text.txt"
```
ΠΠ΅ΡΠΎΠ΄ΠΎΠΌ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π°Π»ΡΠ°Π²ΠΈΡΠ° Π² Π³ΡΡΠΏΠΏΠ°Ρ
ΡΠΈΡΡΡΠ΅ΠΊΡΡΠ° ΠΊ ΡΡΠ°Π»ΠΎΠ½Π½ΠΎΠΌΡ (ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΌΡ ΠΈΠ· Π°Π½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°). ΠΡΠΈ Π²Π΅ΡΠ½ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π² Π³ΡΡΠΏΠΏΠ°Ρ
ΡΠ°Π±Π»ΠΈΡΠ° ΡΠ°ΡΠΏΡΠ΅Π»Π΅Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄:
## License
[Apache-2.0 License](LICENSE)