-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathw4-l2.py
More file actions
58 lines (49 loc) · 2.37 KB
/
w4-l2.py
File metadata and controls
58 lines (49 loc) · 2.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
'''
Считать одной строкой произвольное количество пар элементов "Название книги Число экземпляров", второй строкой название алгоритма хеширования md5
Aibolit 66 Barmaley 67
md5
Создать 2 класса:
1-й преобразует строку вида 'Aibolit 66 Babmaley 67', где название книги уникально, в словарь.
2-й осуществляет хеширования названия книги алгоритмом md5.
Вывести отдельными операторами вывода:
- элементы словаря, отсортированные по возрастанию ключа, например:
Aibolit 66
Barmaley 67
- результаты хеширования в виде пар названия алгоритма и результатов хеширования ключей, отсортированных по возрастанию, представленных в шестнадцатеричном виде, сведенных в одну строку через пробел вида
md5 c47.... md5 5d....' (без пробелов в начале и конце строки).
Пример входных данных:
Aibolit 66 Barmaley 67
md5
Пример выходных данных:
Aibolit 66
Barmaley 67
md5 768414e20f688934976716d717e7986b md5 96b0e4c581d12e5014c6b443e770c460
Вариант
'''
import hashlib
class createDict(object):
def __init__(self, inStr, hashAlg):
self.inStr = inStr
self.hashAlg = hashAlg
inList = inStr.split()
self.inDict = dict(zip(inList[::2], inList[1::2]))
for item in sorted(self.inDict.keys()):
print(item, self.inDict[item])
class makeHash(createDict):
def doHash(self):
rezStr = ''
tmpList = []
for key in self.inDict:
inHash = hashlib.new(self.hashAlg)
inHash.update(key.encode())
rezHash = inHash.hexdigest()
tmpList.append(rezHash)
for item in sorted(tmpList):
rezStr += '{} {} '.format(self.hashAlg, item)
return rezStr.strip()
#inStr = 'Maugli 55 Contakt 49 Qwerty 111 Qwerty 222 Aibolit 66 XXX 65'
#hashAlg = 'md5'
inStr = str(input())
hashAlg = str(input())
x = makeHash(inStr, hashAlg)
print(x.doHash())