0% ont trouvé ce document utile (0 vote)
48 vues2 pages

Readmnsgtxt

Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
48 vues2 pages

Readmnsgtxt

Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd

import base64

import os
import random
import string

# Fonction d'encodage de tentative


def try_decode(content):
encodings = ['utf-8', 'latin-1', 'cp1252']
for encoding in encodings:
try:
return [Link](encoding), encoding
except UnicodeDecodeError:
continue
# Retourner du texte lisible au format binaire
return [Link]('latin-1', errors='ignore'), 'binary (partial)'

# Première fonction : Lire et décoder le fichier


def read_and_decode_file(file_path):
with open(file_path, 'rb') as file: # Ouverture en mode binaire pour lecture
brute
content = [Link]()
decoded_content, encoding_used = try_decode(content)
print(f"Contenu décodé avec encodage {encoding_used} :")
print(decoded_content[:500]) # Imprimer un extrait du contenu
return decoded_content

# Deuxième fonction : Sauvegarder le fichier en clair


def save_file_without_encryption(content, output_path):
try:
with open(output_path, 'w', encoding='utf-8') as file:
[Link](content)
print(f"Fichier sauvegardé sans encodage à : {output_path}")
except PermissionError:
print("Erreur : Permission refusée pour écrire dans ce répertoire. "
"Essayez un autre emplacement, comme le bureau ou le dossier
Documents.")

# Troisième fonction : Lire un fichier sans encodage, l’encoder et sauvegarder avec


un nom aléatoire
def encode_and_save_with_random_name(input_path):
with open(input_path, 'r', encoding='utf-8') as file:
content = [Link]()
encoded_content = base64.b64encode([Link]('utf-8')).decode('utf-8')

random_filename = ''.join([Link](string.ascii_lowercase +
[Link], k=10)) + ".txt"
output_path = [Link]("C:/", random_filename)

with open(output_path, 'w') as file:


[Link](encoded_content)

print(f"Fichier encodé sauvegardé avec un nom aléatoire à : {output_path}")

# Quatrième fonction : Tester le fichier encodé et afficher les informations


def test_encoded_file(file_path):
with open(file_path, 'r') as file:
encoded_content = [Link]()
try:
decoded_content = base64.b64decode(encoded_content).decode('utf-8')
print("Contenu décodé du fichier encodé :")
print(decoded_content[:500]) # Imprimer un extrait pour vérifier
except Exception as e:
print("Erreur de décodage du fichier encodé :", e)

# Cinquième fonction : Quitter le programme


def exit_program():
print("Programme terminé.")
exit()

# Menu principal
def main():
while True:
print("\nOptions :")
print("1 : Lire et décoder le fichier")
print("2 : Sauvegarder le fichier sans encodage")
print("3 : Encoder un fichier en clair et sauvegarder avec un nom
aléatoire")
print("4 : Tester et afficher les informations du fichier encodé")
print("5 : Quitter")

choice = input("Choisissez une option (1-5) : ")

if choice == '1':
file_path = input("Entrez le chemin du fichier à lire et décoder : ")
decoded_content = read_and_decode_file(file_path)
elif choice == '2':
if 'decoded_content' in locals():
output_path = input("Entrez le chemin pour sauvegarder le fichier
sans encodage : ")
save_file_without_encryption(decoded_content, output_path)
else:
print("Aucun contenu décodé à sauvegarder. Exécutez d'abord
l'option 1.")
elif choice == '3':
input_path = input("Entrez le chemin du fichier à encoder : ")
encode_and_save_with_random_name(input_path)
elif choice == '4':
encoded_file_path = input("Entrez le chemin du fichier encodé à
tester : ")
test_encoded_file(encoded_file_path)
elif choice == '5':
exit_program()
else:
print("Option non valide. Veuillez choisir une option entre 1 et 5.")

# Exécution du programme principal


if __name__ == "__main__":
main()

Vous aimerez peut-être aussi