Μόλις τελείωσα το πρώτο μου πρόγραμμα που κρυπτογραφεί και αποκρυπτογραφεί αρχεία!
Αυτό που κάνει είναι να χωρίζει τα bytes ενός αρχείου σε περίπου 7>= τμήματα <= 9, και στην συνέχεια
ξανά γράφει αυτά τα τμήματα στο ίδιο αρχείο αλλά αντιμεταθετιμένα ανά 2 τμήματα, το οποίο έχει ως
αποτέλεσμα να καταστρέφει το αρχείο(Κρυπτογράφηση).
Άμα ξανά τρέξεις το πρόγραμμα στο ίδιο αρχείο τότε θα ξανά αντιμεταθέσεις τα τμήματα και θα τα ξανά φέρεις στην σωστή τους σειρά, έτσι το αρχείο θα δουλεύει ξανά (Αποκρυπτογράφηση)!
# -*- coding: UTF-8 -*-
import os
#Χρήση:
#Άμα ανοίξεις ένα αρχείο που δεν είναι κρυπτογραφημένο, τότε θα κρυπτογραφηθεί.
#Εάν ειναι κρυπτογραφημένο, τότε θα αποκρυπτογραφηθεί.
#Όταν κρυπτογραφείς ένα αρχειο τότε το καταστρέφεις και δεν δουλεύει, ενώ
#όταν το αποκρυπτογραφείς το ξανά κάνεις πάλι έγκυρο. Έτσι αν κάποιος
#δεν γνωρίζει τον αλγοριθμό με τον οποίο το κρυπτογράφησες, δεν μπορεί
#να ανοίξει ποτέ το αρχείο.
def main():
byteList = []
filename = input("Filename: ")
file = open(filename, "rb")
fileSize = os.path.getsize(filename)
const = int((fileSize - fileSize/2) /4)
print("Reading File...")
#Διάβασμα των bytes ανά const.
#Το loop αυτό θα τρέξει περίπου 8>=loop<=9
#Άρα και η byteList θα έχει θέσεις περίπου 8<= len(byteList) <= 9
while True:
byte = file.read( const) #Διάβαζω τόσα bytes όσο είναι το const.
#Τέλως αρχειου.
if not byte:
break
byteList.append(byte) #Εισαγωγή των bytes στην λίστα.
continue
file.close() #Κλείσιμο αρχείου.
print("\nFile Read!\nStart Writting...")
file = open(filename, "wb")
#Ξανά γράφω τα bytes μέσα στο αρχείο αλλά τα αντιμεταθέτω ανά 2 για να καταστρέψω το αρχείο.
for i in range(0, len(byteList), 2):
if (i < len(byteList)-1):
const += file.write(byteList[i+1])
const += file.write(byteList[i])
pass
else:
file.write(byteList[i])
file.close() #Κλείσιμο αρχείου.
print("\nDone!")
main()