27 lines
803 B
Clojure
27 lines
803 B
Clojure
(ns cipher-analytical-machine.cli.actions.cracking
|
|
(:require
|
|
[cipher-analytical-machine.analyzers.caesar :as caesar-analyzers]
|
|
[cipher-analytical-machine.symbols.frequencies :as symbol-frequencies])
|
|
(:gen-class))
|
|
|
|
(defn cracking-caesar
|
|
[options arguments]
|
|
(let [analyzer (:analyzer options)
|
|
message (:message options)
|
|
symbols (:symbols options)
|
|
frequencies symbol-frequencies/english-letter-frequencies]
|
|
(cond
|
|
(= analyzer "Chi^2")
|
|
(caesar-analyzers/get-plaintext message symbols frequencies)
|
|
|
|
:else
|
|
(caesar-analyzers/get-plaintext message symbols frequencies))))
|
|
|
|
(defn cracking-actions
|
|
[options arguments action-type]
|
|
(let [cipher (:cipher options)]
|
|
(cond
|
|
(= cipher "Caesar")
|
|
(cracking-caesar options arguments))))
|
|
|