updated the readme
This commit is contained in:
parent
38348f978f
commit
2526147b6c
113
README.md
113
README.md
@ -1,2 +1,113 @@
|
|||||||
# psyfer
|
psyfer
|
||||||
|
|
||||||
|
# Overview
|
||||||
|
|
||||||
|
Psyfer is a app which lets you perform various different ciphers to input
|
||||||
|
strings. It also provides the ability to guess certain ciphers.
|
||||||
|
|
||||||
|
Psyfer is project for UC Davis ECS 235A Computer and Information Security
|
||||||
|
|
||||||
|
# Getting Started
|
||||||
|
|
||||||
|
If you have a working Go enviroment on your computer, you can download pull
|
||||||
|
down this repo and build this code. Otherwise, visit https://derek.mcquay.me/ecs235a/
|
||||||
|
for downloadsTODO
|
||||||
|
|
||||||
|
Once you have psyfer, you can run commands like:
|
||||||
|
|
||||||
|
> psyfer vig -k xyz "this is my string"
|
||||||
|
|
||||||
|
which will perform the vigenere cipher with a key of "xyz" on the given input
|
||||||
|
|
||||||
|
# Concept
|
||||||
|
|
||||||
|
Psyfer is built on a structure of commands, arguments & flags.
|
||||||
|
|
||||||
|
**Commands** represent actions, **Args** are things and **Flags** are modifiers for those actions.
|
||||||
|
|
||||||
|
# Usage
|
||||||
|
|
||||||
|
## psyfer trans
|
||||||
|
|
||||||
|
Running `psyfer trans [mode] [flags] [input]` will perform various different
|
||||||
|
transposition ciphers to your input string. the possible options are `random`,
|
||||||
|
`railfence` and `split`.
|
||||||
|
|
||||||
|
Here is an example:
|
||||||
|
|
||||||
|
```
|
||||||
|
psyfer trans railfence "my input string"
|
||||||
|
```
|
||||||
|
|
||||||
|
Likewise, you can also decrypt by adding the `-d` flag:
|
||||||
|
|
||||||
|
```
|
||||||
|
psyfer trans railfence "m nu tigyiptsrn" -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## psyfer sub
|
||||||
|
Running `psyfer sub [flags] [input]` will perform a substitution cipher according
|
||||||
|
to a key file. An example key file is found in the repo called key.json.
|
||||||
|
|
||||||
|
Here is an example:
|
||||||
|
|
||||||
|
```
|
||||||
|
psyfer sub -k key.json "my input string"
|
||||||
|
```
|
||||||
|
|
||||||
|
Likewise, you can also decrypt by adding the `-d` flag:
|
||||||
|
|
||||||
|
```
|
||||||
|
psyfer sub -k key.json "ax nmpir krqnmb" -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## psyfer vig
|
||||||
|
|
||||||
|
Running `psyfer vig [flags] [input]` will perform the vigenere cipher with
|
||||||
|
the provided key.
|
||||||
|
|
||||||
|
Here is an example:
|
||||||
|
|
||||||
|
```
|
||||||
|
psyfer vig -k mykey "my input string"
|
||||||
|
```
|
||||||
|
|
||||||
|
Likewise, you can also decrypt by adding the `-d` flag:
|
||||||
|
|
||||||
|
```
|
||||||
|
psyfer vig -k mykey "decrypt this string" -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## psyfer aes
|
||||||
|
|
||||||
|
Running `psyfer aes [flags] [input]` will perform the AES cipher with keysizes
|
||||||
|
128, 192 or 256 bit in Electronic Codebook (ECB). The key is "baked" into the
|
||||||
|
program (example keys found in FIPS publication 197.
|
||||||
|
|
||||||
|
The default behavior is to return the hex representation of the string. the
|
||||||
|
`-a` flag will display in ascii.
|
||||||
|
|
||||||
|
Here is an example:
|
||||||
|
|
||||||
|
```
|
||||||
|
psyfer aes -k 128 "my input string"
|
||||||
|
```
|
||||||
|
|
||||||
|
Likewise, you can also decrypt by adding the `-d` flag:
|
||||||
|
|
||||||
|
```
|
||||||
|
psyfer aes -k 128 "my input string" -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## psyfer guess
|
||||||
|
|
||||||
|
Running `psyfer guess [flags] [input]` will return the top five most likely
|
||||||
|
solutions to the caesar cipher provided.
|
||||||
|
|
||||||
|
Here is an example:
|
||||||
|
|
||||||
|
```
|
||||||
|
psyfer guess "wklv lv d vhfuhw phvvdjh"
|
||||||
|
```
|
||||||
|
|
||||||
|
which will return "THISISASECRETMESSAGE" as the most likely answer
|
||||||
|
Loading…
Reference in New Issue
Block a user