Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Décryptage XOR | Chiffrement de l'Information
Fondamentaux de la Cybersécurité
course content

Contenu du cours

Fondamentaux de la Cybersécurité

Fondamentaux de la Cybersécurité

1. Introduction à la Cybersécurité
2. Cybersécurité Web
3. Chiffrement de l'Information

book
Décryptage XOR

Nous avons déjà examiné comment fournir un chiffrement XOR dans le chapitre précédent. Mais qu'en est-il du déchiffrement ?
Voyons le code suivant:

123456789101112131415161718192021222324252627282930313233343536373839
# Encoding function def xor_encode(text, key): # Convert text and key to binary strings binary_text = ''.join(format(ord(char), '08b') for char in text) binary_key = ''.join(format(ord(char), '08b') for char in key) # Repeat the key to match the length of the text repeated_key = (binary_key * (len(binary_text) // len(binary_key) + 1))[:len(binary_text)] # XOR each bit of the text with the corresponding bit of the key encoded_text = ''.join(str(int(bit_text) ^ int(bit_key)) for bit_text, bit_key in zip(binary_text, repeated_key)) return encoded_text # Decoding function def xor_decode(encoded_text, key): # Convert encoded text and key to binary strings binary_encoded_text = encoded_text binary_key = ''.join(format(ord(char), '08b') for char in key) # Repeat the key to match the length of the encoded text repeated_key = (binary_key * (len(binary_encoded_text) // len(binary_key) + 1))[:len(binary_encoded_text)] # XOR each bit of the encoded text with the corresponding bit of the key decoded_text = ''.join(str(int(bit_encoded) ^ int(bit_key)) for bit_encoded, bit_key in zip(binary_encoded_text, repeated_key)) # Convert the binary string back to characters decoded_text = ''.join(chr(int(decoded_text[i:i+8], 2)) for i in range(0, len(decoded_text), 8)) return decoded_text # Example usage: encoded_message = xor_encode("Hello, XOR Decoding!", "secretkey") # XOR Decoding decoded_message = xor_decode(encoded_message, "secretkey") print(f"Encoded Message : {encoded_message}") print(f"Decoded Message : {decoded_message}")
copy

La fonction de décodage est presque identique à l'encodage ; la seule différence est la présence de la ligne supplémentaire qui décode la représentation binaire au format texte (ligne 28).

question mark

Comment l'opération XOR est-elle représentée en Python?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 6

Demandez à l'IA

expand
ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

course content

Contenu du cours

Fondamentaux de la Cybersécurité

Fondamentaux de la Cybersécurité

1. Introduction à la Cybersécurité
2. Cybersécurité Web
3. Chiffrement de l'Information

book
Décryptage XOR

Nous avons déjà examiné comment fournir un chiffrement XOR dans le chapitre précédent. Mais qu'en est-il du déchiffrement ?
Voyons le code suivant:

123456789101112131415161718192021222324252627282930313233343536373839
# Encoding function def xor_encode(text, key): # Convert text and key to binary strings binary_text = ''.join(format(ord(char), '08b') for char in text) binary_key = ''.join(format(ord(char), '08b') for char in key) # Repeat the key to match the length of the text repeated_key = (binary_key * (len(binary_text) // len(binary_key) + 1))[:len(binary_text)] # XOR each bit of the text with the corresponding bit of the key encoded_text = ''.join(str(int(bit_text) ^ int(bit_key)) for bit_text, bit_key in zip(binary_text, repeated_key)) return encoded_text # Decoding function def xor_decode(encoded_text, key): # Convert encoded text and key to binary strings binary_encoded_text = encoded_text binary_key = ''.join(format(ord(char), '08b') for char in key) # Repeat the key to match the length of the encoded text repeated_key = (binary_key * (len(binary_encoded_text) // len(binary_key) + 1))[:len(binary_encoded_text)] # XOR each bit of the encoded text with the corresponding bit of the key decoded_text = ''.join(str(int(bit_encoded) ^ int(bit_key)) for bit_encoded, bit_key in zip(binary_encoded_text, repeated_key)) # Convert the binary string back to characters decoded_text = ''.join(chr(int(decoded_text[i:i+8], 2)) for i in range(0, len(decoded_text), 8)) return decoded_text # Example usage: encoded_message = xor_encode("Hello, XOR Decoding!", "secretkey") # XOR Decoding decoded_message = xor_decode(encoded_message, "secretkey") print(f"Encoded Message : {encoded_message}") print(f"Decoded Message : {decoded_message}")
copy

La fonction de décodage est presque identique à l'encodage ; la seule différence est la présence de la ligne supplémentaire qui décode la représentation binaire au format texte (ligne 28).

question mark

Comment l'opération XOR est-elle représentée en Python?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 6
Nous sommes désolés de vous informer que quelque chose s'est mal passé. Qu'est-il arrivé ?
some-alt