Πώς να φτιάξετε μια γεννήτρια κλειδιών

Πίνακας περιεχομένων:

Πώς να φτιάξετε μια γεννήτρια κλειδιών
Πώς να φτιάξετε μια γεννήτρια κλειδιών

Βίντεο: Πώς να φτιάξετε μια γεννήτρια κλειδιών

Βίντεο: Πώς να φτιάξετε μια γεννήτρια κλειδιών
Βίντεο: Πως να επιλέξετε γεννήτριες 2024, Νοέμβριος
Anonim

Η προστασία λογισμικού είναι πιθανώς το κύριο πρόβλημα που αντιμετωπίζει κάθε προγραμματιστής. Ο ευκολότερος τρόπος για να προστατευτείτε είναι να χρησιμοποιήσετε κλειδιά που δημιουργούνται σύμφωνα με μια συγκεκριμένη αρχή. Το γράψιμο μιας βασικής γεννήτριας κλειδιού είναι μια κλασική εργασία για τους αρχάριους προγραμματιστές C, επειδή σας επιτρέπει να τονίσετε πτυχές της εργασίας με σύμβολα

Πώς να φτιάξετε μια γεννήτρια κλειδιών
Πώς να φτιάξετε μια γεννήτρια κλειδιών

Οδηγίες

Βήμα 1

Η παρακάτω γεννήτρια κλειδιών είναι ουσιαστικά ένας κρυπτογράφος. Το πρόγραμμα απαιτεί από τον χρήστη να εισάγει ένα όνομα και επώνυμο, μετά να μεταφράσει κάθε εισαγόμενο χαρακτήρα σε έναν αριθμητικό κωδικό και να τον μετατρέψει σύμφωνα με έναν συγκεκριμένο νόμο. Ο χρήστης θα εμφανιστεί στην οθόνη ένα κλειδί που αποτελείται από τον ίδιο αριθμό χαρακτήρων με το επώνυμο. Το μειονέκτημα αυτού του αλγορίθμου είναι ότι ο τυποποιημένος αριθμός χαρακτήρων στο κλειδί μπορεί να ληφθεί μόνο με τυποποιημένα δεδομένα εισόδου (διεύθυνση IP, τιμή από το μητρώο των Windows).

Βήμα 2

Ζητήστε το επώνυμο, το όνομα και το όνομα του χρήστη. Σε αυτήν την περίπτωση, για να καταστεί το πλήκτρο εξόδου πιο βολικό, θα χρησιμοποιηθεί μόνο το επώνυμο (ο κωδικός που θα εισαχθεί θα διαβαστεί μέχρι τον πρώτο χώρο, οι υπόλοιποι θα πάνε στο buffer, το οποίο θα πρέπει να διαγραφεί εάν είναι απαραίτητο). Τα δεδομένα θα εγγραφούν στον πίνακα char A [30]. Ταυτόχρονα, εισαγάγετε έναν επιπλέον μετρητή για να θυμάμαι πόσους χαρακτήρες έχουν εισαχθεί.

printf ("Εισαγάγετε το επώνυμο και τα αρχικά. [Vasiliev A. I.] n");

ενώ (A [i-1]! = ")

{scanf ("% c", & A ); εγώ ++;}

Βήμα 3

Μετατρέψτε το επώνυμο. Παρά το γεγονός ότι ο πίνακας είναι σε μορφή char, μπορείτε να πραγματοποιήσετε οποιεσδήποτε μαθηματικές λειτουργίες μαζί του, από τότε κάθε χαρακτήρας στο C έχει τον δικό του αριθμητικό κωδικό. Επομένως, δημιουργήστε έναν βρόχο από το μηδέν έως τον αποθηκευμένο αριθμό χαρακτήρων i. Στο σώμα του βρόχου, γράψτε τον μετασχηματισμό για το στοιχείο A [j] και μετά εμφανίστε τον.

για (int j = 0; j

Ο έλεγχος εγκυρότητας θα πραγματοποιηθεί συγκρίνοντας τα προκύπτοντα και τα δεδομένα κλειδιά. Για εξουσιοδότηση, ο χρήστης εισάγει το επώνυμό του και τον κωδικό που εκδίδει η γεννήτρια σας. Μια παρόμοια γεννήτρια είναι εγκατεστημένη μέσα στο πρόγραμμα, το οποίο μετατρέπει το επώνυμο σύμφωνα με τον ίδιο νόμο και, στη συνέχεια, συγκρίνει τον χαρακτήρα των χαρακτήρων που έχουν εισαχθεί ανά χαρακτήρα με αυτό που θα έπρεπε να είχε ληφθεί.

Βήμα 4

Ο έλεγχος εγκυρότητας θα πραγματοποιηθεί συγκρίνοντας τα προκύπτοντα και τα δεδομένα κλειδιά. Για εξουσιοδότηση, ο χρήστης εισάγει το επώνυμό του και τον κωδικό που εκδίδει η γεννήτρια σας. Μια παρόμοια γεννήτρια είναι εγκατεστημένη μέσα στο πρόγραμμα, το οποίο μετατρέπει το επώνυμο σύμφωνα με τον ίδιο νόμο και, στη συνέχεια, συγκρίνει τον χαρακτήρα των χαρακτήρων που έχουν εισαχθεί ανά χαρακτήρα με αυτό που θα έπρεπε να είχε ληφθεί.

Συνιστάται: