@OneDeus

Что не так с хеш-функцией?

from random import choice
from random import randint

symbol = ['1','2','3','4','5','6','7','8','9','0','a','b','c',\
'd','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s',\
't','u','v','w','x','y','z','!','@','\\','#','№','$',';','%','^',\
':','&','?','(',')','-','_','+','=','`','~','[',']','{',\
'}','.',',','/','|','A','B','C','D','E','F','G','H','J','K','L',\
'M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','<',\
'>','А','М','В','С','у','Е','Т','а','Х','З']

list = {
	'A':symbol[0:8],	'B':symbol[8:10],
	'C':symbol[10:13],	'D':symbol[13:17],
	'E':symbol[17:29],	'F':symbol[29:31],
	'G':symbol[31:33],	'H':symbol[33:39],
	'I':symbol[39:45],	'J':[symbol[45]],
	'K':[symbol[46]],	'L':symbol[47:51],
	'M':symbol[51:53],	'N':symbol[53:59],
	'O':symbol[59:66],	'P':symbol[66:68],
	'Q':[symbol[68]],	'R':symbol[69:75],
	'S':symbol[75:81],	'T':symbol[81:90],
	'U':symbol[90:93],	'V':[symbol[93]],
	'W':symbol[94:96],	'X':[symbol[96]],
	'Y':symbol[97:99],	'Z':[symbol[99]]
}

crypt = input("Введите [E] если хотите зашифровать | Введите [D] если хотите зашифровать: ").upper()
if crypt not in ['E','D']:
	print("Ошибка: введено неправильное значение!"); 
	raise SystemExit

Message = input("Ввод: ")

def Encrypt_and_Decrypt(mode, message, final = "", crypt = ""):

#Щифрование
	if mode == 'E':
		for symbol in message.upper():
			if symbol in list:
				final += choice(list[symbol])
				keys = {
					'A':['Q','1','!','`','Я','М','Ь','З'],
					'B':['W','2'],
					'C':['E','3','@'],
					'd':['R','4','#',':'],
					'e':['T','5','$',';','Ц','Е','Ш','Ж',',','ф','ч','ш'],
					'f':['Y','6'],
					'g':['U','7'],
					'h':['I','8','%','"','Ы','П'],
					'i':['O','9','^','/','Ч','И'],
					'j':['P'],
					'k':['A'],
					'l':['S','0','&','?'],
					'm':['D','*'],
					'n':['F','(','<','У','Н','Л'],
					'o':['G',')','>','В','Р','Б','Х'],
					'p':['H','-'],
					'q':['J'],
					'r':['K','_','|','С','Т','Щ'],
					's':['L','+','№','К','Г','Д'],
	                't':['M','=','Й','А','О','Ю','Ъ','.','й'],
					'u':['N','[','Ф'],
					'v':['B'],
					'w':['V',']'],
					'x':['C'],
					'y':['X','{'],
					'z':['Z'],
					' ':['}']
					}

				crypt = ""
				for i in final:
					if i in keys:
						lenght=len(keys[i])
						crypt+=keys[i][randint(0,lenght-1)]
				print(crypt)
				return crypt


Когда пользователь вводит сообщение, сначала символы заменяются на другие, после полученные символы заменяются на рандомные символы из keys, и уже полученный результат выводится, но оно выводит пустую строку, подскажите что не так
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
@bacon
Где вызов функции?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы