Κοινή χρήση τεχνολογίας

C string hash (hush) εξήγηση

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


Τι είναι το hash

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

Στην 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;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

άλλα

Στην πραγματικότητα, υπάρχουν πολλές μέθοδοι κατακερματισμού, όπως ο διπλός κατακερματισμός. Αλλά στην πραγματικότητα μόνο ένας κατακερματισμός είναι αρκετός.

πρακτική

Στην πραγματικότητα υπάρχει μόνο ένα ερώτημα