From 34fda59784a19334f893043a48d10900dfd4d109 Mon Sep 17 00:00:00 2001 From: Bucchino Geoffrey Date: Sat, 9 Jul 2022 16:09:22 +0200 Subject: [PATCH] Rename files --- main.py => decryptCaesar.py | 41 ++----------------------------- stats.py | 48 +++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 39 deletions(-) rename main.py => decryptCaesar.py (65%) create mode 100644 stats.py diff --git a/main.py b/decryptCaesar.py similarity index 65% rename from main.py rename to decryptCaesar.py index 428471f..920a2a1 100644 --- a/main.py +++ b/decryptCaesar.py @@ -2,45 +2,14 @@ from argparse import ArgumentParser import matplotlib.pyplot as plt -from lorem import text as loremtext from functions import readFile def checkArguments(): args = ArgumentParser(description='Cryptanalyst') args.add_argument('-f', '--filename', help='Text to analyze') - args.add_argument('-s', '--stats', help='Statistics', action='store_true') - args.add_argument('-d', '--decrypt', help='Decrypt Caesar text', action='store_true') return args.parse_args() -def stats(file=None): - """ - This function get a stats of all letter occurrence in a text - """ - if file is None: - dataFile = loremtext() - else: - dataFile = file - - lettersOccurence = [] - - # Init our tab - for i in range (0, 26): - lettersOccurence.append(0) - - letterToAscii = ord('a') # Get the ASCII code - for letter in dataFile: - l = ord(letter) - letterToAscii - if l >= 0 and l <= 26: - lettersOccurence[l] += 1 - - x = [chr(letter + 65) for letter in range(0, 26)] - y = [tmp for tmp in lettersOccurence] - - largeur = 0.5 - plt.bar(x, y, largeur) - plt.show() - def decryptCaesarText(cipherFile): """ This function breach the caesar ciphertext with all key @@ -82,17 +51,11 @@ def getNewLetter(letterAscii, letterToAscii, key): res = ((letterAscii - key) % 26) + letterToAscii return chr(res) -def main(): +if __name__ == "__main__": args = checkArguments() cipherFile = None if args.filename: cipherFile = readFile(args.filename) - if args.stats: - stats(cipherFile) - if args.decrypt: - decryptCaesarText(cipherFile) - -if __name__ == "__main__": - main() + decryptCaesarText(cipherFile) diff --git a/stats.py b/stats.py new file mode 100644 index 0000000..5b166ef --- /dev/null +++ b/stats.py @@ -0,0 +1,48 @@ +# coding: utf-8 + +from argparse import ArgumentParser +import matplotlib.pyplot as plt +from lorem import text as loremtext +from functions import readFile + + +def checkArguments(): + args = ArgumentParser(description='Cryptanalyst') + args.add_argument('-f', '--filename', help='Text to analyze') + return args.parse_args() + +def stats(file=None): + """ + This function get a stats of all letter occurrence in a text + """ + if file is None: + dataFile = loremtext() + else: + dataFile = file + + lettersOccurence = [] + + # Init our tab + for i in range (0, 26): + lettersOccurence.append(0) + + letterToAscii = ord('a') # Get the ASCII code + for letter in dataFile: + l = ord(letter) - letterToAscii + if l >= 0 and l <= 26: + lettersOccurence[l] += 1 + + x = [chr(letter + 65) for letter in range(0, 26)] + y = [tmp for tmp in lettersOccurence] + + largeur = 0.5 + plt.bar(x, y, largeur) + plt.show() + +if __name__ == "__main__": + args = checkArguments() + + if args.filename: + dataFile = readFile(args.filename) + + stats(dataFile)