diff --git a/crypttool.py b/crypttool.py index d0e9014..c0accc4 100644 --- a/crypttool.py +++ b/crypttool.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -import sys, string, types, hashlib, base64, re, urllib, binascii +import sys, string, types, hashlib, base64, re, binascii import operator from collections import Counter @@ -89,7 +89,7 @@ def rot(inputString, amount): resultChar = '' if char.isupper(): index = UPPER_LETTERS.index(char) - resultChar = UPPER_LETTERS[(index + amount)%len(UPPER_LETTERS)] + resultChar = UPPER_LETTERS[(index + amount) % len(UPPER_LETTERS)] elif char.islower(): index = LOWER_LETTERS.index(char) resultChar = LOWER_LETTERS[(index + amount) % len(LOWER_LETTERS)] @@ -162,7 +162,7 @@ def resolveZeroWidthString(inputstring): charfound = False binarystring = '' resultstring = '' - inputstring = inputstring.decode('utf-8') + #inputstring = inputstring.decode('utf-8') for char in inputstring: if char == u'\u200b': binarystring += '1' @@ -204,11 +204,12 @@ def hammingDistance(string1, string2): return diffs def urlEncoder(): - input = input('Pleae input your String: ') - print(urllib.quote_plus(input)) + import urllib.parse + url = input('Pleae input your String: ') + print(urllib.parse.quote(url)) def reverser(): - string = input('Please input your string to reverse:') + string = input('Please input your string to reverse: ') print(string[::-1]) def base64prompt(): @@ -232,7 +233,7 @@ def base64prompt(): if (re.match(b64regex, inputString)): print(base64.b64decode(inputString)) else: - print(base64.b64encode(inputString)) + print(base64.b64encode(inputString.encode())) def rotPrompt(): @@ -283,48 +284,52 @@ def hashPrompt(): inputString = input('Please input a string: ') hasher.update(inputString.encode('utf-8')) print(hasher.hexdigest()) +def main(): + print('Welcome aboard PankiCrypt Airlines!') + print('How may we serve you today?') + print('1: ROT/Ceasar Encryption') + print('2: Hashing functions') + print('3: Translation') + print('4: Base64 Encoder/Decoder') + print('5: String Reverser') + print('6: URL Encoder') + print('7: Fixed XOR') + print('8: XOR Bruteforce Single Byte ') + print('9: XOR Repeating Key') + print('10: Zero-Width String') + print('11: Resolve Zero-Width Strings') + choice = input('Please make a selection: ') + if (choice == '1'): + rotPrompt() + elif (choice == '2'): + hashPrompt() + elif (choice == '3'): + translatePrompt() + elif(choice == '4'): + base64prompt() + elif(choice == '5'): + reverser() + elif(choice == '6'): + urlEncoder() + elif(choice[0] == '7'): + if(len(choice) > 1): + argList = choice.split(' ') + fixedxor(argList[1], argList[2]) + else: + fixedxor() + elif(choice == '8'): + #xorSingleBrute() + xorBrutePrompt() + elif(choice == '9'): + xorRepeating() + elif(choice == '10'): + i = input('String:') + zeroWidthString(i) + elif(choice == '11'): + i = input('String:') + resolveZeroWidthString(i) + print('Thank you for flying with PankiCrypt Airlines!') -print('Welcome aboard PankiCrypt Airlines!') -print('How may we serve you today?') -print('1: ROT/Ceasar Encryption') -print('2: Hashing functions') -print('3: Translation') -print('4: Base64 Encoder/Decoder') -print('5: String Reverser') -print('6: URL Encoder') -print('7: Fixed XOR') -print('8: XOR Bruteforce Single Byte ') -print('9: XOR Repeating Key') -print('10: Zero-Width String') -print('11: Resolve Zero-Width Strings') -choice = input('Please make a selection: ') -if (choice == '1'): - rotPrompt() -elif (choice == '2'): - hashPrompt() -elif (choice == '3'): - translatePrompt() -elif(choice == '4'): - base64prompt() -elif(choice == '5'): - reverser() -elif(choice == '6'): - urlEncoder() -elif(choice[0] == '7'): - if(len(choice) > 1): - argList = choice.split(' ') - fixedxor(argList[1], argList[2]) - else: - fixedxor() -elif(choice == '8'): - #xorSingleBrute() - xorBrutePrompt() -elif(choice == '9'): - xorRepeating() -elif(choice == '10'): - i = input('String:') - zeroWidthString(i) -elif(choice == '11'): - i = input('String:') - resolveZeroWidthString(i) -print('Thank you for flying with PankiCrypt Airlines!') + +if __name__ == '__main__': + main()