cryptographers αναφέρεται σε αλγόριθμους κρυπτογράφησης που εφαρμόζουν ένα ενιαίο μετατροπή σε ολόκληρο το μήνυμα ως " monoalphabetic . " Αυτά αλγόριθμους κρυπτογράφησης συνήθως λαμβάνουν έναν απλό αλγόριθμο που εκτελεί μια μεταμόρφωση , και στη συνέχεια να εφαρμόσει αυτό το αλγόριθμο για κάθε χαρακτήρα στο μήνυμα. Η φύση του αλγορίθμου δεν πειράζει πραγματικά , τόσο πολύ , δεδομένου ότι παραμένει συνεπής σε ολόκληρη την κρυπτογράφηση του μηνύματος . Η απλούστερη θα λειτουργήσει σε ένα χαρακτήρα κάθε φορά , ενώ άλλοι μπορεί να χρησιμοποιούν πολλαπλούς χαρακτήρες για να κατασκευάσει το κρυπτογράφημα.
Εικόνων Caesar Cipher and Hill Cipher
Η
Ο απλούστερος monoalphabetic κρυπτογράφησης είναι το Caesar Cipher , που εφευρέθηκε από τον Ιούλιο Καίσαρα για να κρύψει τα μηνύματα από τους εχθρούς του . Η cipher Caesar απλά ορίζει μια αριθμητική τιμή σε γράμματα , και στη συνέχεια να αποφασίσει μια μετατόπιση. Αυτή η απόκλιση μετατοπίζει την αξία των γραμμάτων , και έτσι ανακατεύει το μήνυμα . Αν ο αναγνώστης γνωρίζει το offset , μπορεί απλά να επαναφέρετε τις τιμές και να διαβάσετε το αρχικό μήνυμα . Ο Χιλ Cipher , από την άλλη πλευρά, χρησιμοποιεί μήτρες των χαρακτήρων και τιμές για να προσδιορίσει την κρυπτογράφηση . Για παράδειγμα, ένα λόφο offset κλειδί αξιών 2x2 θα λάβει δύο χαρακτήρες ταυτόχρονα από τη μήτρα και την μετατόπιση αξίας τους .
Η Caesar Cipher σε Java
Η
το Caesar Cipher σε Java περιλαμβάνει τον καθορισμό μια μετατόπιση , και στη συνέχεια, μεταβάλλοντας την τιμή της κάθε γράμμα μιας συμβολοσειράς από αυτήν την μετατόπιση . Ο προγραμματιστής μπορεί να δημιουργήσει μια λίστα με τα γράμματα για να συγκρίνετε το αρχικό μήνυμα κατά του κλειδιού κρυπτογράφησης , και στη συνέχεια να μεταφράσει αυτό το μήνυμα στην κρυπτογράφησης κρυπτογράφησης . Στη συνέχεια , η κρυπτογράφηση γίνεται ένα ζήτημα απλής προσθήκης :
τάξη Καίσαρα {
δημόσια στατική άκυρη κύρια ( String [ ] args ) {
String μήνυμα = " hghajdvudbu " ? String temp = " abcdefghijklmnopqrstuvwxyz " ? int offset = 3 ? String μεταφράσει = new String ( ) ?
για ( int i = 0 ? i String t = Character.toString ( message.charAt ( i) ) ? δείκτη int = temp.indexOf ( t ) ? δείκτης + = offset 26 % ? String προσθέσετε = Character.toString ( temp.charAt ( index ) ) ? μεταφράσει + = προσθέσω? System.out.println ( μετάφραση ) ? } } } Ο λόφος cipher χρησιμοποιεί ένα κλειδί μήτρα να πολλαπλασιάσετε τις τιμές στο κείμενο , προκειμένου να δημιουργηθεί το κρυπτογράφημα. Σε μία απλή περίπτωση , μια μήτρα 2x2 θα μπορούσε να χρησιμοποιηθεί για να δημιουργήσει ένα κλειδί κρυπτογράφησης . Ο προγραμματιστής θα πρέπει στη συνέχεια να χρησιμοποιήσει δύο χαρακτήρες από το μήνυμα σε ένα χρόνο, προκειμένου να υπολογίσει σωστά το μεταφρασμένο messae , όπως φαίνεται στο ακόλουθο κώδικα : String μήνυμα = " hghajdvudbu " ? String temp = " abcdefghijklmnopqrstuvwxyz " String μεταφράσει = new String ( ) ? int πλήκτρο [ ] [ ] = new int [ 2 ] [ 2 ] ? πλήκτρο [ 0 ] [ 0 ] = 1 ? πλήκτρο [ ,"abcdefghijklmnopqrstuvwxyz " String metafrásei = new String ( ) ?̱ int plí̱ktro [ ] [ ] = new int [ 2 ] [ 2 ] ?̱ plí̱ktro [ 0 ] [ 0 ] = 1 ?̱ plí̱ktro [ 0 ] [ 1 ] = 2 ? πλήκτρο [ 1 ] [ 0 ] = 3 ? πλήκτρο [ 1 ] [ 1 ] = 4 ? int letterone = 7 ? int lettertwo = 6 ? int nletterone = ( letterone πλήκτρο * [ 0 ] [ 0 ] ) + ( letterone πλήκτρο * [ 0 ] [ 1 ] ) ? int nlettertwo = ( lettertwo * πλήκτρο [ 1 ] [ 0 ] ) + ( lettertwo * πλήκτρο [ 1 ] [ ,"int nletterone = ( letterone plí̱ktro * [ 0 ] [ 0 ] ) + ( letterone plí̱ktro * [ 0 ] [ 1 ] ) ?̱ int nlettertwo = ( lettertwo * plí̱ktro [ 1 ] [ 0 ] ) + ( lettertwo * plí̱ktro [ 1 ] [ 1 ] ) ? μεταφράσει = Character.toString ( temp.charAt ( nletterone % 26 ) ) + Character.toString ( temp.charAt ( nlettertwo % 26 ) ) ?
εικόνων 2x2 Χιλ Cipher σε Java
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα