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}")
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)
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
2x=x²
demande de renseignements
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
2x=x²
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)
Le Tout est souvent plus grand que la somme de ses parties.
2x=x²