Advertisement
Hack-Team

cryptage_2

Nov 22nd, 2019
538
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 9.23 KB | None | 0 0
  1. # Définir fonction de hashage des données
  2.  
  3. import random
  4.  
  5. c_key = random.randrange(10, 20)
  6. input = "azerty"
  7. def hashage(str, key):
  8.     # Dictionnaire permettant de modifier les valeurs de l'argument
  9.  
  10.     valeur = str
  11.  
  12.     dico1 = {"a": "xxEWA3Br5zpzy9tn8w6Y",
  13.              "b": "bMO5QqfVJ3SdFT7Dztwi",
  14.              "c": "7caxdSfdQ42Q3V13Ty9p",
  15.              "d": "Cqb6vcujreatcERAuSfk",
  16.              "e": "p2PPDy1XqMf73QEAyRyP",
  17.              "f": "j9nAT7lSvQ7Gzx677QMG",
  18.              "g": "CaaCMYUC76PKqZfyl9n4",
  19.              "h": "U6dS5bx74PcMJe7PpQMJ",
  20.              "i": "LrgVU6d20hvJGrL2ptIa",
  21.              "j": "XFNBQIg7jj1xVWV408ix",
  22.              "k": "KC8kaxIdmyaX9ZK2saBc",
  23.              "l": "htsyzpFVEEz6hHbY0ngD",
  24.              "m": "0l1zFfKRF6dzewf7EFvZ",
  25.              "n": "ygQ12BOozSSDEQpY58m7",
  26.              "o": "BjDYqbm2M5UFyGg8qPZP",
  27.              "p": "Ue8w3zSrPizaaMJqzE3b",
  28.              "q": "iQxxmAPCy4fB0hJgSTEf",
  29.              "r": "b991dlkj4AscPqC9Enu6",
  30.              "s": "iAh4OOQVj27QAEXQEMHu",
  31.              "t": "cEoZW5lQSyNzO8sO4T16",
  32.              "u": "3AnuTmLnux2MY1De8SrG",
  33.              "v": "1HTe1k0I2zyGDjG8vmek",
  34.              "w": "ARFPFbvuvrAcNS1pe4xh",
  35.              "x": "Ukt5P1u1DNNVlgRDQ371",
  36.              "y": "CNybi8NlNOL2lNA5ZbsY",
  37.              "z": "D8YlGYFOCE9WFum4N0QN",
  38.              "A": "Qzmh9Vo1opibCmJvHb0Ac9v44h6wMh",
  39.              "B": "9RayYSbm1uMGxuLQ6KJrTvqRl9NWTS",
  40.              "C": "IA7vH02PCAxWbkL7SX942IGAxWQ38y",
  41.              "D": "GKhFMZxq6WfOTfmbnUJFwdwvSgzsKY",
  42.              "E": "5LE4KaSBSrwIO8WZNfWMfoGSCJUnUk",
  43.              "F": "nZTR3f8c3odXuL2FSYB1xGj5T9asVq",
  44.              "G": "h0khqkrX63a0uxfErbsJ6uejhkNiso",
  45.              "H": "1Ll1W1FcZJF9W2lbfkJ2auyOco4XkI",
  46.              "I": "HrupsT1rhuWuVnIQ8Dd30jrDOb6rlté",
  47.              "J": "X0OtIQPoBC8qwfz6kBUZi405nYLDgZ",
  48.              "K": "iMf57wyiPaMchwXFWZ0USzoSn4md7e",
  49.              "L": "CF5b5SqGsQRIWzj7ptX7ke7rlvWj7v",
  50.              "M": "bcRrTbV2Xip8flfmA0r84abvzQw7eO",
  51.              "N": "dPhUx20GZObzzRUdnNZn19ICHncebh",
  52.              "O": "PHkzyMXGKkD6rY5eUX8G0GfTbJI1rk",
  53.              "P": "3ASSkqYEtksUvk2Stm0viAwXWgTTrR",
  54.              "Q": "Dkzk54yJeb2AW1YWNJACfst9JGatAV",
  55.              "R": "E0B3qOVsHOzMuncxk706hqs50jDTSZ",
  56.              "S": "T9FdR3SFCX2srKCNLu3DygW0EuDL6K",
  57.              "T": "VigMrRuhkZRZpBfaU4xgD6fQbbsojk",
  58.              "U": "74hM6E9mZYGidCLK3gykw75nawxZZf",
  59.              "V": "QODv3mZzyitZ5JRftr2Yu2xhIu7Sxd",
  60.              "W": "WET5mhZNJ3L3aLdRVQPrPHCxA7VgwK",
  61.              "X": "tsmN8kBpNPGIAmurHI20Kdccq1qUoa",
  62.              "Y": "QhHCaijdLJeS2SlxbCdjyKNu82sivC",
  63.              "Z": "Rwg8m53BnzZRektHMj8askdprsknDs",
  64.              "1": "g0yhXYkFUyclGysB4EnSw9HDz7",
  65.              "2": "ReuyZ6VXWLuJliwBgSr34OkV8o",
  66.              "3": "bjIhSG6a7dil3JRu0Sqr6LYmjs",
  67.              "4": "3fB7R57BLQRpYmv6jO3q2chceN",
  68.              "5": "JRCprFEBktjj87oSIisd0jcWws",
  69.              "6": "qyDUpuobvjTkRfeh3mpRX0Mg08",
  70.              "7": "YA4ciFHknuZlmSUAvlJAEBzotV",
  71.              "8": "Y55dpQ2RnZLhJ4ElY4POc99XnL",
  72.              "9": "weg8yfQ3vnyfKbnSS9t0D86CnR",
  73.              "0": "E135vjmhfYoYgfgx3H3TeJBuO2"
  74.              }
  75.  
  76.     # Conversion de l'argument en liste
  77.  
  78.     valeur = list(valeur)
  79.     out = []
  80.  
  81.     # Recherche et modification des éléments de la liste de l'argument
  82.  
  83.     for element in valeur:
  84.         value = dico1.get(element, "ce caractere n'est pas disponible !!")
  85.         if value != "ce caractere n'est pas disponible !!":
  86.             value_out = []
  87.             for k in range(key):
  88.                 value_out.append(value[k])
  89.             value_str = "".join(value_out)
  90.             out.append(value_str)
  91.  
  92.     # Conversion de la liste d'argument en chaine de charactere
  93.  
  94.     valeur = "".join(out)
  95.  
  96.     # Retourner le resultat de la valeur
  97.  
  98.     return valeur
  99.  
  100.  
  101. # Définir fonction de dé-hashage des données
  102.  
  103. def de_hashage(str, key):
  104.  
  105.     valeur_2 = str
  106.     key = int(key)
  107.  
  108.     # Création d'un dictionnaire inversée
  109.  
  110.     dico2 = {"xxEWA3Br5zpzy9tn8w6Y": "a",
  111.              "bMO5QqfVJ3SdFT7Dztwi": "b",
  112.              "7caxdSfdQ42Q3V13Ty9p": "c",
  113.              "Cqb6vcujreatcERAuSfk": "d",
  114.              "p2PPDy1XqMf73QEAyRyP": "e",
  115.              "j9nAT7lSvQ7Gzx677QMG": "f",
  116.              "CaaCMYUC76PKqZfyl9n4": "g",
  117.              "U6dS5bx74PcMJe7PpQMJ": "h",
  118.              "LrgVU6d20hvJGrL2ptIa": "i",
  119.              "XFNBQIg7jj1xVWV408ix": "j",
  120.              "KC8kaxIdmyaX9ZK2saBc": "k",
  121.              "htsyzpFVEEz6hHbY0ngD": "l",
  122.              "0l1zFfKRF6dzewf7EFvZ": "m",
  123.              "ygQ12BOozSSDEQpY58m7": "n",
  124.              "BjDYqbm2M5UFyGg8qPZP": "o",
  125.              "Ue8w3zSrPizaaMJqzE3b": "p",
  126.              "iQxxmAPCy4fB0hJgSTEf": "q",
  127.              "b991dlkj4AscPqC9Enu6": "r",
  128.              "iAh4OOQVj27QAEXQEMHu": "s",
  129.              "cEoZW5lQSyNzO8sO4T16": "t",
  130.              "3AnuTmLnux2MY1De8SrG": "u",
  131.              "1HTe1k0I2zyGDjG8vmek": "v",
  132.              "ARFPFbvuvrAcNS1pe4xh": "w",
  133.              "Ukt5P1u1DNNVlgRDQ371": "x",
  134.              "CNybi8NlNOL2lNA5ZbsY": "y",
  135.              "D8YlGYFOCE9WFum4N0QN": "z",
  136.              "Qzmh9Vo1opibCmJvHb0Ac9v44h6wMh": "A",
  137.              "9RayYSbm1uMGxuLQ6KJrTvqRl9NWTS": "B",
  138.              "IA7vH02PCAxWbkL7SX942IGAxWQ38y": "C",
  139.              "GKhFMZxq6WfOTfmbnUJFwdwvSgzsKY": "D",
  140.              "5LE4KaSBSrwIO8WZNfWMfoGSCJUnUk": "E",
  141.              "nZTR3f8c3odXuL2FSYB1xGj5T9asVq": "F",
  142.              "h0khqkrX63a0uxfErbsJ6uejhkNiso": "G",
  143.              "1Ll1W1FcZJF9W2lbfkJ2auyOco4XkI": "H",
  144.              "HrupsT1rhuWuVnIQ8Dd30jrDOb6rlté": "I",
  145.              "X0OtIQPoBC8qwfz6kBUZi405nYLDgZ": "J",
  146.              "iMf57wyiPaMchwXFWZ0USzoSn4md7e": "K",
  147.              "CF5b5SqGsQRIWzj7ptX7ke7rlvWj7v": "L",
  148.              "bcRrTbV2Xip8flfmA0r84abvzQw7eO": "M",
  149.              "dPhUx20GZObzzRUdnNZn19ICHncebh": "N",
  150.              "PHkzyMXGKkD6rY5eUX8G0GfTbJI1rk": "O",
  151.              "3ASSkqYEtksUvk2Stm0viAwXWgTTrR": "P",
  152.              "Dkzk54yJeb2AW1YWNJACfst9JGatAV": "Q",
  153.              "E0B3qOVsHOzMuncxk706hqs50jDTSZ": "R",
  154.              "T9FdR3SFCX2srKCNLu3DygW0EuDL6K": "S",
  155.              "VigMrRuhkZRZpBfaU4xgD6fQbbsojk": "T",
  156.              "74hM6E9mZYGidCLK3gykw75nawxZZf": "U",
  157.              "QODv3mZzyitZ5JRftr2Yu2xhIu7Sxd": "V",
  158.              "WET5mhZNJ3L3aLdRVQPrPHCxA7VgwK": "W",
  159.              "tsmN8kBpNPGIAmurHI20Kdccq1qUoa": "X",
  160.              "QhHCaijdLJeS2SlxbCdjyKNu82sivC": "Y",
  161.              "Rwg8m53BnzZRektHMj8askdprsknDs": "Z",
  162.              "g0yhXYkFUyclGysB4EnSw9HDz7": "1",
  163.              "ReuyZ6VXWLuJliwBgSr34OkV8o": "2",
  164.              "bjIhSG6a7dil3JRu0Sqr6LYmjs": "3",
  165.              "3fB7R57BLQRpYmv6jO3q2chceN": "4",
  166.              "JRCprFEBktjj87oSIisd0jcWws": "5",
  167.              "qyDUpuobvjTkRfeh3mpRX0Mg08": "6",
  168.              "YA4ciFHknuZlmSUAvlJAEBzotV": "7",
  169.              "Y55dpQ2RnZLhJ4ElY4POc99XnL": "8",
  170.              "weg8yfQ3vnyfKbnSS9t0D86CnR": "9",
  171.              "E135vjmhfYoYgfgx3H3TeJBuO2": "0"
  172.              }
  173.  
  174.     # Splitage des données
  175.     #valeur_2 = valeur_2.split(clé_2)
  176.     out_2 = []
  177.     value_2 = []
  178.     out_3 = []
  179.     c_element = []
  180.     a = 0
  181.     # Crée la liste contenant les données remise en place
  182.  
  183.     # Récupere les elements de valeur_2 et ajouter a une liste
  184.     for element_2 in valeur_2:
  185.         out_2.append(element_2)
  186.  
  187.         # Découper le cryptage en fonction de la clé
  188.         if len(out_2) == key:
  189.             out_join = "".join(out_2)
  190.  
  191.             # Ajouter le cryptage par lettre à une liste commune
  192.             value_2.append(out_join)
  193.             print(value_2)
  194.  
  195.          # suprimer les elements des anciennes liste pour eviter les doublons
  196.             out_join = []
  197.             out_2 = []
  198.             if out_join == [] and out_2 == []:
  199.  
  200.                 # Mettre les elements de value_2 dans c_element
  201.                 for element_4 in value_2:
  202.                     c_element.append(element_4)
  203.                     print(c_element)
  204.  
  205.  
  206.                     # Pour les clé du dico 2
  207.                     for keys in dico2:
  208.  
  209.                         # ajouter la cle a keys_re et modifier la longueur
  210.                         keys_liste = list(keys)
  211.                         keys_out = []
  212.                         for i in range(key):
  213.                             keys_out.append(keys_liste[i])
  214.  
  215.                         keys_re = "".join(keys_out)
  216.  
  217.                         # si c_element est egal à keys_re alors ajouter la valeur de la vrai clé à out_3
  218.                         if c_element != []:
  219.                             if c_element[0] == keys_re:
  220.                                 c_dico = dico2.get(keys, 'le programme à planté')
  221.                                 out_3.append(c_dico)
  222.                                 c_element.pop(-1)
  223.                         else:
  224.                             pass
  225.  
  226.             # Si les listes ne sont pas vide il faut afficher un message d'erreur
  227.             else:
  228.                 print("les liste ne sont pas vide")
  229.  
  230.         else:
  231.             pass
  232.     # Joindre les élément de out_3 dans valeur 2
  233.     valeur_2 = "".join(out_3)
  234.     print(valeur_2)
  235.     # Retourner la valeur_2
  236.     return valeur_2
  237.  
  238.  
  239. if __name__ == '__main__':
  240.     mdp = hashage(input, c_key)
  241.     print(mdp)
  242.     print(c_key)
  243.  
  244.     recup = de_hashage(mdp, c_key)
  245.     print(recup)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement