def main(): dizio = dict() for _ in xrange(5): chiave = generate_key() while(dizio.has_key(chiave)): chiave = generate_key() dizio[chiave] = (generate_value(), generate_value()) print (dizio)
def main(): dizio = dict() for _ in xrange(3): chiave = generate_key() while dizio.has_key(chiave): chiave = generate_key() dizio[chiave] = generate_value() print(dizio)
def main(): dizio = dict() for _ in xrange(20): chiave = generate_key() while(dizio.has_key(chiave)): chiave = generate_key() dizio[chiave] = generate_value() dizio_sorted = sorted(dizio.items(), key=operator.itemgetter(1)) print (dizio_sorted)
def main(): dizio = dict() for _ in xrange(3): chiave = generate_key() while(dizio.has_key(chiave)): chiave = generate_key() dizio[chiave] = generate_value() print (dizio) add_newvalue(generate_key(), generate_value(), dizio) print (dizio)
def main(): dizio = dict() for _ in xrange(3): chiave = generate_key() valore = generate_value() while(dizio.has_key(chiave)): chiave = generate_key() dizio[chiave] = generate_value() dizio[chiave] = [generate_value(), generate_value(), generate_value()] print (dizio)
def usr_interface(): print('Hello user!') option = -1 while option != 0 and option !=1 and option !=2: option = int(raw_input("Please enter 0 to encrypt a message, 1 to decrypt a message, 2 to execute an attack to hill cipher: ")) if option == 0: kplaintext = str(raw_input("Please enter a plaintext to encrypt (NO numbers): ")).upper().translate(None, string.punctuation).translate( None, " ").translate(None, "\n") m = int(raw_input("Please enter block length m: ")) #se il plaintext non e' divisibile in blocchi di dimensione m, trova il fattore minimo per cui e' divisibile #se la lunghezza del plaintext e' un numero primo maggiore di 10 o ha un divisore >10, il messaggio viene troncato if len(kplaintext) % m != 0 and len(kplaintext) < 10: oldm = m for i in (2, 3, 5, 7, 9): if len(kplaintext) % i == 0: m = i break print('Unable to encrypt using ' + str(oldm) + ' as block length, changing it to: ' + str(m)) key = functions.generate_key(m) functions.hill_encryption(m, kplaintext, key) elif option == 1: kciphertext = str(raw_input("Please enter a ciphertext to decrypt (NO numbers): ")).upper().translate(None, string.punctuation).translate( None, " ").translate(None, "\n") m = int(raw_input("Please enter block length m: ")) stringkey = str(raw_input("Please enter Key (as characters): ")).upper().translate(None, string.punctuation).translate( None, " ").translate(None, "\n") key = np.zeros(shape=(m, m)) z = 0 for i in range(m): for j in range(m): key[i][j] = functions.dic[stringkey[z]] if z >= len(stringkey): break else: z += 1 functions.hill_decryption(kciphertext, key) elif option == 2: kciphertext = str(raw_input("Please enter the ciphertext (NO numbers): ")).upper().translate(None, string.punctuation).translate( None, " ").translate(None, "\n") kplaintext = str(raw_input("Please enter the plaintext (NO numbers): ")).upper().translate(None, string.punctuation).translate( None, " ").translate(None, "\n") m = int(raw_input("Please enter block length m: ")) functions.hill_attack(m, kplaintext, kciphertext)