Πώς να κωδικοποιήσετε μια συμβολοσειρά σε Base64 με Java

Συγγραφέας: Janice Evans
Ημερομηνία Δημιουργίας: 25 Ιούλιος 2021
Ημερομηνία Ενημέρωσης: 1 Ιούνιος 2024
Anonim
Πώς να κωδικοποιήσετε μια συμβολοσειρά σε Base64 με Java - Γνώσεις
Πώς να κωδικοποιήσετε μια συμβολοσειρά σε Base64 με Java - Γνώσεις

Περιεχόμενο

Άλλες ενότητες

Το Base64 είναι μια μέθοδος κωδικοποίησης κάθε 3 byte εισόδου σε 4 byte εξόδου. Συνήθως χρησιμοποιείται για την κωδικοποίηση φωτογραφιών ή ήχου για την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου (αν και οι ημέρες των γραμμών μετάδοσης 7-bit έχουν τελειώσει ως επί το πλείστον) και ένας τρόπος απόκρυψης του ελέγχου ταυτότητας ιστοσελίδων (ονόματα χρήστη και κωδικοί πρόσβασης) από την απλή κατασκοπεία. Ακολουθεί ένα παράδειγμα του τρόπου κωδικοποίησης ενός κωδικοποιητή Base64 στην Java, μιας γλώσσας προγραμματισμού πολλαπλών πλατφορμών. Αυτό το παράδειγμα, και η δοκιμαστική συμβολοσειρά κωδικοποίησης, δανείζεται από το άρθρο της Wikipedia.

Βήματα

  1. Εισαγάγετε το αρχείο πληροφοριών και ονόματος
  2. Ξεκινήστε τον επεξεργαστή σας, όπως το Σημειωματάριο ή το vi, και εισαγάγετε τα προκαταρκτικά, όπως η δήλωση τάξης και οι γνωστές σταθερές. Ονομάστε το αρχείο Base64.java.

  3. Αυτές οι σταθερές τιμές καθορίζονται, έτσι το άρθρο αναφέρει, στα σχετικά RFC. Είναι γενικά καλή ιδέα να διαβάσετε όλα τα σχετικά RFC πριν ξεκινήσετε την κωδικοποίηση.
  4. Κωδικοποίηση χρησιμοποιώντας getBytes (). Αντιμετώπιση χαρακτήρων ως byte σημαίνει ότι οι χαρακτήρες πολλαπλών byte, όπως τα ιαπωνικά ή τα κινέζικα, δεν θα κωδικοποιηθούν σωστά. Επομένως, πρέπει να χρησιμοποιήσουμε τη μέθοδο getBytes () του String για να μετατρέψουμε τους χαρακτήρες Unicode της τρέχουσας τοπικής ρύθμισης σε byte πριν από την έναρξη της κωδικοποίησης.
    • Εάν εργάζεστε σε ένα ιαπωνικό έγγραφο σε μια αμερικανική αγγλική γλώσσα, θα πρέπει να καθορίσετε τις τοπικές ρυθμίσεις για την έξοδο του getBytes (), όπως το getBytes ("UTF-8").


  5. Μάθετε πόσα bytes padding χρειάζονται. Ο χειριστής modulo της Java,%, είναι χρήσιμος εδώ. Ας δηλώσουμε επίσης το όνομα και τις παραμέτρους της υπορουτίνας ενώ είμαστε σε αυτό.

  6. Χρησιμοποιήστε την τιμή για να μηδενίσετε την είσοδο. Σημειώστε ότι εάν δεν απαιτείται επένδυση, δεν προστίθεται κανένα, αφού παίρνουμε το συντελεστή 3 τη δεύτερη φορά, μετατρέποντας το 3 σε 0.
  7. Τώρα φτάνουμε στο κρέας: συσκευάζοντας τρία byte κάθε φορά σε ακέραιο 24-bit, στη συνέχεια εξάγοντας δείκτες 6-bit στη συμβολοσειρά κωδικοποίησης. Αυτοί οι αριθμοί δεν είναι μαγικοί: 24 χωρίζονται σε 6 ακριβώς 4 φορές και 6 bit μπορούν να κρατήσουν τιμές από 0 έως 63, οι οποίες μπορούν να ευρετηριάζουν σε οποιαδήποτε τιμή στη συμβολοσειρά κωδικοποίησης 64 byte.
  8. Συσκευάστε την έξοδο αφού το γεμίσετε εισάγοντας CRLFs στα απαιτούμενα όρια 76-byte, χρησιμοποιώντας ξεχωριστή υπορουτίνα για σαφήνεια.
  9. Επαληθεύστε εάν θέλετε να προσθέσετε μια κύρια ρουτίνα για σκοπούς δοκιμών. Αυτή είναι συνήθως μια καλή ιδέα πριν δημοσιεύσετε έναν κωδικό για δημόσια κατανάλωση.
  10. Εδώ είναι η ολοκληρωμένη ενότητα:
  11. Συντάξτε το, χρησιμοποιώντας javac, gcj, likes ή παρόμοια. και δοκιμή, χρησιμοποιώντας το απόσπασμα Hobbes από το άρθρο της Wikipedia:
  12. Εδώ είναι το αποτέλεσμα:
  13. Βεβαιωθείτε ότι ταιριάζει ακριβώς. Αυτό σημαίνει ότι και τα δύο προγράμματα είναι λανθασμένα ή είναι και τα δύο περισσότερο ή λιγότερο σωστά. Σε αυτό το σημείο ίσως θελήσετε να επισκεφτείτε ξανά το άρθρο της Wikipedia και να διαβάσετε τα συνδεδεμένα RFC για να δείτε αν χάσαμε κάτι.

Ερωτήσεις και απαντήσεις κοινότητας



Πώς αποκωδικοποιώ από το Base64 στο String στην Java;

Για παράδειγμα, η μεταβλητή Base64A = 5; Μεταβλητή συμβολοσειράς B = μεταβλητήA. Δοκιμάστε αυτόν τον ψευδοκώδικα.

Συμβουλές

  • Μην αισθάνεστε ότι πρέπει πάντα να καταλαβαίνετε κάτι εντελώς πριν από την κωδικοποίηση. Τα πράγματα γίνονται πιο ξεκάθαρα καθώς προχωράτε.
  • Η Java είναι εντάξει ως γλώσσα γενικής χρήσης και για συσκευές όπως τα κινητά τηλέφωνα μπορεί να είναι η μόνη επιλογή του προγραμματιστή, αλλά μπορεί να θεωρήσετε ότι η σύνταξη Javascript ή Python είναι πιο περιεκτική και ισχυρή. Οι διαφορετικές γλώσσες έχουν τα δικά τους πλεονεκτήματα και αδυναμίες.
  • Δοκιμάστε να γράψετε τη συνοδευτική μέθοδο αποκωδικοποίησης () για αυτήν την ενότητα!
  • Ενώ η ανάγνωση σχετικών RFC είναι απαραίτητη για τον κώδικα παραγωγής, η υπερφόρτωση πληροφοριών μπορεί να είναι συντριπτική. Μερικές φορές ο καλύτερος τρόπος είναι να τα ξεφύγετε, να κωδικοποιήσετε σύμφωνα με όσα καταλαβαίνετε και, στη συνέχεια, να επιστρέψετε και να ελέγξετε τη λειτουργικότητα από σημείο σε σημείο σε σχέση με τις υποχρεωτικές απαιτήσεις του RFC.

Σχετικά Άρθρα

  • Γίνετε προγραμματιστής Java
  • Γράψτε το πρώτο σας πρόγραμμα στην Java

Θέλετε να γίνετε καλός συγγραφέας; Όπως κάθε άλλη τέχνη, η γραφή μπορεί να βελτιωθεί με το χρόνο και την πρακτική. Κάνε τη συνήθεια αφιερώνοντας τον εαυτό σου σε αυτό καθημερινά. Οι συγγραφείς έχουν τ...

Οι περισσότεροι άνθρωποι παίζουν Λεγεώνα των Θρύλων πλήρης οθόνη για βελτιστοποίηση απόδοσης, αλλά η λειτουργία παραθύρου μπορεί να είναι ακόμη καλύτερη σε ορισμένες περιπτώσεις. Με αυτόν τον τρόπο, ε...

Νέες Θέσεις