Δημοσιεύτηκε: 14 Φεβ 2012, 21:41
από migf1
Αν είδα καλά, έχετε φτιάξει Vigenere κρυπτογράφηση με hard-coded τον πίνακα tabula recta, σε κεφαλαία λατινικά και μόνο, χωρίς ρουτίνα αποκρυπτογράφησης.

Δοκιμάστε να ανεξαρτητοποιήσετε το βασικό αλφάβητο από το hardcoding, επιτρέποντας να είναι οποιοδήποτε εύρος συμβόλων διαλέγει ο χρήστης ή ο προγραμματιστής, από ASCII(0) έως ASCII(255) ... αυτό θα δουλεύει και με UTF-8... καθώς και να ανεξαρτητοποιήσετε τα σύμβολα της αλφαβήτου από τα ASCII codes που τους αντιστοιχούν (να μπορεί δηλαδή το πρόγραμμα να λειτουργεί σωστά ακόμα και με τυχαίως ανακατεμένα τα σύμβολα του αρχικού αλφάβητου).

Και προφανώς να προσθέσετε και ρουτίνα αποκρυπτογράφησης, μιας και δεν στέκεται μόνο το ένα ή μόνο το άλλο. Κρυπτογράφηση και αποκρυπτογράφηση πάνε πάντα ζευγάρι.

Τώρα, το κατά πόσο τα παραπάνω θεωρούνται απλά στη Java, δεν έχω ιδέα. Ο αλγόριθμος κρυπτογράφησης/αποκρυπτογράφησης του Vigenere αυτός κάθε αυτός είναι μάλλον τετριμμένος (του Καίσαρα είναι αστείος) οπότε το βάρος πέφτει στη υλοποίησή του, καθώς και των υπόλοιπων που περιγράφω παραπάνω.

Σε λιγάκι θα ποστάρω στο νήμα της C ένα ολοκληρωμένο πρόγραμμα που κάνει ότι περιγράφω παραπάνω, τόσο για Caesar όσο και για Vigenere (με μενού να επιλέγει ο χρήστης τον αλγόριθμο).