Partage
  • Partager sur Facebook
  • Partager sur Twitter

demande de renseignements

test de chiffrement d'un message utilisant le langage python

    28 juillet 2024 à 14:48:39

    Bonjour à tous, 

    je suis novice dans le domaine de l'informatique et je me demandai si le code ci dessous avait un quelconque sens dans le cadre de la robustesse de l'algorithme ou si il ne s'agit simplement que d'un truc pour "amuser la galerie".

    Merci par avance pour votre temps et vos réponses.

    import numpy as np
    
    def generate_key(length):
        return np.random.randint(0, 2, size=length)
    
    def evolution_rule(level, bit):
        result = bit
        for i in range(level):
            result = (result + bit) * bit % 2
        return result % 2
    
    def apply_evolution(data, level):
        evolved_data = np.copy(data)
        for i in range(len(data)):
            evolved_data[i] = evolution_rule(level, data[i])
        return evolved_data
    
    def encrypt(message, key, complexity_level):
        message_bits = np.array([int(bit) for bit in ''.join(format(ord(char), '08b') for char in message)])
        key_bits = key[:len(message_bits)]
        encrypted_bits = apply_evolution(message_bits ^ key_bits, complexity_level)
        return ''.join(map(str, encrypted_bits))
    
    def decrypt(encrypted_message, key, complexity_level):
        encrypted_bits = np.array([int(bit) for bit in encrypted_message])
        key_bits = key[:len(encrypted_bits)]
        decrypted_bits = apply_evolution(encrypted_bits, complexity_level) ^ key_bits
        decrypted_chars = [chr(int(''.join(map(str, decrypted_bits[i:i+8])), 2)) for i in range(0, len(decrypted_bits), 8)]
        return ''.join(decrypted_chars)
    
    # Exemple d'utilisation
    message = "test pour voir si tu y arrive, si tu lit cela c'est que mon algorithme est mauvais!!"
    complexity_level = 10
    key = generate_key(8 * len(message))
    
    encrypted_message = encrypt(message, key, complexity_level)
    decrypted_message = decrypt(encrypted_message, key, complexity_level)
    
    print(f"Message original : {message}")
    print(f"Message chiffré : {encrypted_message}")
    print(f"Message déchiffré : {decrypted_message}")

    • Partager sur Facebook
    • Partager sur Twitter

    2x=x²

      28 juillet 2024 à 22:17:51

      Pour amuser la galerie !
      • Partager sur Facebook
      • Partager sur Twitter

      Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
      La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

        29 juillet 2024 à 1:45:25

        Peut-être qu'il manque un '1'. :)

        En tout cas, ça s'exécute (interprète)

        Le message chiffré contient 672 caractères.

        Il y a de multiples façons de chiffrer un message.

        Si le sujet t'intéresse vraiment, tu peux lire ceci:

        https://zestedesavoir.com/forums/sujet/5277/fevrier-2016-decryptez-les-secrets-les-mieux-gardes/

        -
        Edité par PierrotLeFou 29 juillet 2024 à 2:32:48

        • Partager sur Facebook
        • Partager sur Twitter

        Le Tout est souvent plus grand que la somme de ses parties.

          14 août 2024 à 9:57:12

          fred1599 

          PierrotLeFou 

          merci pour vos réponses, effectivement le sujet m'intéresse merci pour le lien!

          Je me suis amusé à créer une application sur smartphone pour chiffrer des messages ( ma fille aime bien l'idée des message "secret" ) du coup je l'ai fait avec simple remplacement des lettres et chiffres par d'autre ainsi qu'une deuxième app avec le chiffrage aes-256 les deux fonctionnent bien et sont rigolote pour elle mais du coup je cherche à en apprendre un peu plus au passage.

          -
          Edité par Ad01 14 août 2024 à 10:10:08

          • Partager sur Facebook
          • Partager sur Twitter

          2x=x²

          demande de renseignements

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          • Editeur
          • Markdown