τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Ο κατακερματισμός, γνωστός και ως κατακερματισμός, είναι η βάση της κρυπτογραφίας Η κατανόηση του κατακερματισμού είναι απαραίτητη προϋπόθεση για την κατανόηση τεχνολογιών όπως οι ψηφιακές υπογραφές και η κρυπτογραφημένη επικοινωνία.
Στην C++, οι κατακερματισμοί χρησιμοποιούνται συχνά για την κρυπτογράφηση συμβολοσειρών, έτσι ώστε διαφορετικές συμβολοσειρές να έχουν διαφορετικές τιμές.
Ταυτόχρονα, τα hashes είναι επίσης μη αναστρέψιμα, επομένως χρησιμοποιούνται συχνά για την κρυπτογράφηση κωδικών πρόσβασης.
Η αρχή του κατακερματισμού είναι στην πραγματικότητα πολύ απλή. Είναι να αντιμετωπίζουμε αυτή τη συμβολοσειρά ως έναν αριθμό πολλαπλών βάσεων και στη συνέχεια να μετατρέπουμε αυτόν τον αριθμό σε δεκαδικό αριθμό.
Γνωρίζοντας την αρχή του κατακερματισμού, είναι πολύ απλό να γράψετε κώδικα.
const int base=131;//这里是将字符串看成的进制
int hash(string str) {
int ans=0;
for(int i=0;i<str.size();++i) ans=ans*base+(int)str[i];
return ans;
}
Στην πραγματικότητα, υπάρχουν πολλές μέθοδοι κατακερματισμού, όπως ο διπλός κατακερματισμός. Αλλά στην πραγματικότητα μόνο ένας κατακερματισμός είναι αρκετός.