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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| def encrypt_function(input_data): L1 = [24,25,26,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23] R1 = [21,3,15,1,19,10,14,26,20,8,16,7,22,4,11,5,17,9,12,23,18,2,25,6,24,13]
L2 = [26,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] R2 = [20,1,6,4,15,3,14,12,23,5,16,2,22,19,11,18,25,24,13,7,10,8,21,9,26,17] L3 = [26,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] R3 = [14,8,18,26,17,20,22,10,3,13,11,4,23,5,24,9,12,25,16,19,6,15,21,2,7,1]
input_data = input_data.replace(" ", "").upper() length = len(input_data) result = "" quick_num = 1 mid_num = 1
for each_letter in range(length): trans_letter = int(mapping_dict.get(input_data[each_letter])) num_low_left = L1[trans_letter] num_low_right = num_low_left pos_mid_left = R1.index(num_low_right) num_mid_right = L2[pos_mid_left] pos_high_left = R2.index(num_mid_right) num_high_right = L3[pos_high_left] output_letter = en_basic.number_to_letter(R3.index(num_high_right), mapping_dict) result += output_letter
L3 = rotate_function(L3, 1) R3 = rotate_function(R3, 1) quick_num = quick_num + 1 if quick_num > 26: quick_num = 1 L2 = rotate_function(L2, 1) R2 = rotate_function(R2, 1) mid_num = mid_num + 1 if mid_num > 26: L1 = rotate_function(L1, 1) R1 = rotate_function(R1, 1) mid_num = 1 return result,L1,R1,L2,R2,L3,R3
|