рд╡рд┐рдЧреНрд░реАрдпрд░ рд╕рд┐рдлрд░ред рдкрд╛рдпрдерди рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо

рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдВ рдЕрдкрдиреЗ "рдЬрд╛рд╕реВрд╕реА" рдмрдЪрдкрди рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдХрдо рд╕реЗ рдХрдо рдмреБрдирд┐рдпрд╛рджреА рддрд░реАрдХреЗ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдФрд░ рдкрд╣рд▓реА рдкрд╕рдВрдж рд╡рд┐рдЧреЗрдирд┐рдпрд░ рд╕рд┐рдлрд░ рдкрд░ рдЧрд┐рд░реАред рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ, рдпрд╣ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред XV рд╕реЗ рдФрд░ рдмрд╣реБрдд XIX рддрдХ рд╡рд┐рдЬреНрдЮрд╛рдкрдиреЛрдВ рдХреА рдПрдХ рд╕рджреА, рдЬрдм рддрдХ рдХрд┐ рдХрд┐рд╕реА рдХрд╛рдЬрд╝рд┐рд╕реНрдХреА рдиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреЛрдб рдХреЛ рдХреНрд░реИрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдХреЛ рдХреЗрд╡рд▓ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рд╡рд░реНрдгрди рдХреЗ рд▓рд┐рдП рдЙрджреНрдзреГрдд рдХрд░рддреЗ рд╣реБрдП рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рд╡рд┐рдзрд┐ рд╕реАрдЬрд╝рд░ рдХрд╛ рдПрдХ рдЙрдиреНрдирдд рд╕реАрдЬрд╝рд░ рд╣реИ, рдЬрд╣рд╛рдВ рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╡рд┐рдЧреЗрдиреЗрдпрд░ рд╕рд┐рдлрд░ рдореЗрдВ рдХрдИ рд╕реАрдЬрд╝рд░ рд╕рд╛рдЗрдлрд░ рдХреЗ рдПрдХ рдЕрдиреБрдХреНрд░рдо рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдмрджрд▓рд╛рд╡ рдореВрд▓реНрдп рд╣реЛрддреЗ рд╣реИрдВред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд░реНрдгрдорд╛рд▓рд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЕрдХреНрд╖рд░ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ:

рдЫрд╡рд┐

рддрдм рдпрджрд┐ рдЕрдХреНрд╖рд░ az рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрддрд╛ рд╣реИ, рддреЛ Vigenere рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЛ рд╕реВрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рдЫрд╡рд┐

рдЯреНрд░рд╛рдВрд╕рдХреНрд░рд┐рдкреНрдЯ:

рдЫрд╡рд┐

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдореЗрдВ рдЗрди рджреЛ рд╕реВрддреНрд░реЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдФрд░ рдХрд┐рд╕реА рдЪреАрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╣рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣рд╛рдВ рдореИрдВ рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд╕рд░рд▓ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдФрд░ рд╡рд┐рд╕реНрддреГрдд рд╣реИред
рджрд░рдЕрд╕рд▓, рд╕рд░ред

рдЯреНрд░рд┐рдХреА рдХреА 'рдХреА' рдХреЗ рд╕рд╛рде 'рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб' рд╢рдмреНрджреЛрдВ рдХреЛ рдПрдирдХреЛрдб рдХрд░реЗрдВред

рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд╡рд░реНрдгреЛрдВ рдХрд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдореЗрдВ рднрд╛рдЧ рд▓реЗрдЧрд╛:
def form_dict(): d = {} iter = 0 for i in range(0,127): d[iter] = chr(i) iter = iter +1 return d 

рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рд╢рдмреНрдж рдореЗрдВ рдЕрдХреНрд╖рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдбрд┐рдХреНрд╢рдирд░реА рдореЗрдВ рд▓рд┐рдЦреЗ рдЕрдХреНрд╖рд░реЛрдВ рд╕реЗ рдХрд░рдиреА рд╣реЛрдЧреА рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
 def encode_val(word): list_code = [] lent = len(word) d = form_dict() for w in range(lent): for value in d: if word[w] == d[value]: list_code.append(value) return list_code 

рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЕрдкрдиреЗ рд╢рдмреНрдж рдФрд░ рдХреБрдВрдЬреА рдХреЛ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдФрд░ рдЗрдВрдбреЗрдХреНрд╕ рдХреА 2 рд╕реВрдЪрд┐рдпрд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХреАрдВ:
рдорд╛рди = [72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]
рдХреБрдВрдЬреА = [резреж [, резрежрез, резреирез]

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдлреБрд▓_рдПрдиреНрдХреЛрдб () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рдкреНрд░рдореБрдЦ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ:
 def comparator(value, key): len_key = len(key) dic = {} iter = 0 full = 0 for i in value: dic[full] = [i,key[iter]] full = full + 1 iter = iter +1 if (iter >= len_key): iter = 0 return dic def full_encode(value, key): dic = comparator(value, key) print 'Compare full encode', dic lis = [] d = form_dict() for v in dic: go = (dic[v][0]+dic[v][1]) % len(d) lis.append(go) return lis def decode_val(list_in): list_code = [] lent = len(list_in) d = form_dict() for i in range(lent): for value in d: if list_in[i] == value: list_code.append(d[value]) return list_code 

рд╣рдо рдЕрдкрдиреЗ рд╕рд┐рдлрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдбрд┐рдХреЛрдб_рд╡рд▓ () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВ:

{реж: [,реи, резреж 0], рез: [резрежрез, резрежрез], реи: [резреж 121, резреирез], рей: [резреж,, резреж:], рек: [резрезрез, резрежрез], рел: [рейреи, резреирез], рем : [резрез реп, резреж]], [: [резрезрез, резрежрез], 114: [резрезрек, резреирез], реп: [резреж,, резреж 10], резреж: [резрежреж, резрежрез]}

рд╕реВрдЪрдХрд╛рдВрдХ: [релреи, ,рел, резрежреи,,,, ,рел, реирем, репреп, ,рел, резреж,,, [, ,рек]

рд╣рдореЗрдВ рдПрдХ рдХреЛрдбреЗрдб рд╕реБрдкрд░-рд╕реАрдХреНрд░реЗрдЯ рд╕рдВрджреЗрд╢ рдорд┐рд▓рддрд╛ рд╣реИ: 4KfXUcUlXJ

рдпрд╣ рд╕рдм full_decode () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреАрдХреЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкрд╣рд▓рд╛ рддрд░реНрдХ рд╕рд┐рдлрд░ рдиреНрдпреВрдореЗрд░рд┐рдХ рдЗрдВрдбреЗрдХреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдХреБрдВрдЬреА рдЗрдВрдбреЗрдХреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ:

 def full_decode(value, key): dic = comparator(value, key) print 'Deshifre=', dic d = form_dict() lis =[] for v in dic: go = (dic[v][0]-dic[v][1]+len(d)) % len(d) lis.append(go) return lis 


рд╕рднреА рд╕рдорд╛рди, рд╣рдо рд╕рд┐рдлрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рдЪрд┐рдд рдбрд┐рдХреЛрдб_рд╡рд▓ () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВ:
[72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]
рдФрд░ рд╡реЛрдЗрд▓рд╛! рд╣рдорд╛рд░рд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╢рдмреНрдж: рдирдорд╕реНрддреЗ рджреБрдирд┐рдпрд╛

рдЦреИрд░, рдореБрдЦреНрдп рдЪреБрдиреМрддреА
 if __name__ == "__main__": word = 'Hello world' key = 'key' print ': '+ word print ': '+ key key_encoded = encode_val(key) value_encoded = encode_val(word) print 'Value= ',value_encoded print 'Key= ', key_encoded shifre = full_encode(value_encoded, key_encoded) print '=', ''.join(decode_val(shifre)) decoded = full_decode(shifre, key_encoded) print 'Decode list=', decoded decode_word_list = decode_val(decoded) print 'Word=',''.join(decode_word_list) 


рд▓реЗрдЦ рдиреЗ рд╕рдм рдХреБрдЫ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рддрд╛рдХрд┐ рдпрд╣ рдкрд╛рдпрдерди рдореЗрдВ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдпрдерд╛рд╕рдВрднрд╡ рд╕реНрдкрд╖реНрдЯ рд╣реЛред рдпрджреНрдпрдкрд┐ рдпрд╣ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЕрдм 100% рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реИ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рдЪреАрдЬреЛрдВ рдХреЛ рд╕реАрдЦрдиреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рдЕрдкрдирд╛рдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд╣реА рдЖрд░рдПрд╕рдПред

рд▓рд┐рдВрдХ рдФрд░ рдХреЛрдб:
рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рд╡рд┐рдЬреЗрдирд░ рдХреЛрдб рдХрд╛ рд╡рд┐рд╡рд░рдг
рдкрд╛рдпрдерди рд╕реНрд░реЛрдд рдХреЛрдб

Source: https://habr.com/ru/post/In140820/


All Articles