UltKit
Εικόνα11
PDF13
Έγγραφα και δεδομένα7
Βίντεο6
Ήχος4
Περισσότερα εργαλεία22

Κωδικοποίηση και αποκωδικοποίηση Base64

Μετατρέψτε κείμενο ή αρχείο σε Base64 ή αποκωδικοποιήστε Base64 ξανά σε αναγνώσιμο κείμενο. Το Unicode αντιμετωπίζεται σωστά, το URL-safe αλφάβητο ενεργοποιείται με ένα κλικ και η αποκωδικοποίηση δέχεται οποιοδήποτε από τα δύο αλφάβητα, με ή χωρίς συμπλήρωση (padding).

Λειτουργία

0 χαρακτήρες · 0 λέξεις · 0 γραμμές

0 χαρακτήρες · 0 λέξεις · 0 γραμμές

Εκτελείται εξ ολοκλήρου σε αυτήν την καρτέλα του προγράμματος περιήγησης. Το κείμενό σας δεν ανεβαίνει ούτε αποθηκεύεται πουθενά.

Το αλφάβητο Base64

Δείκτης → χαρακτήρας κατά το RFC 4648. Οι δύο τελευταίοι, που επισημαίνονται, διαφέρουν στην παραλλαγή για URL: το 62 είναι + ή -, το 63 είναι / ή _.

  1. 0A
  2. 1B
  3. 2C
  4. 3D
  5. 4E
  6. 5F
  7. 6G
  8. 7H
  9. 8I
  10. 9J
  11. 10K
  12. 11L
  13. 12M
  14. 13N
  15. 14O
  16. 15P
  17. 16Q
  18. 17R
  19. 18S
  20. 19T
  21. 20U
  22. 21V
  23. 22W
  24. 23X
  25. 24Y
  26. 25Z
  27. 26a
  28. 27b
  29. 28c
  30. 29d
  31. 30e
  32. 31f
  33. 32g
  34. 33h
  35. 34i
  36. 35j
  37. 36k
  38. 37l
  39. 38m
  40. 39n
  41. 40o
  42. 41p
  43. 42q
  44. 43r
  45. 44s
  46. 45t
  47. 46u
  48. 47v
  49. 48w
  50. 49x
  51. 50y
  52. 51z
  53. 520
  54. 531
  55. 542
  56. 553
  57. 564
  58. 575
  59. 586
  60. 597
  61. 608
  62. 619
  63. 62+ -
  64. 63/ _

Πόσο μεγαλώνει η έξοδος

Κάθε 3 byte εισόδου γίνονται 4 χαρακτήρες· μια τελευταία ομάδα 1 ή 2 byte συμπληρώνεται με = στο τυπικό Base64 και μένει χωρίς padding στη μορφή για URL.

ΕίσοδοςByteΤυπικόΑσφαλές για URLΜήκος
U1VQ==VQ4
Ul2VWw=VWw4
Ult3VWx0VWx04
UltK4VWx0Sw==VWx0Sw8
UltKi5VWx0S2k=VWx0S2k8
UltKit6VWx0S2l0VWx0S2l08

Τι κάνει το Base64

Το Base64, που ορίζεται στο RFC 4648, γράφει τυχαία bytes με 64 εκτυπώσιμους χαρακτήρες ASCII: A–Z, a–z, 0–9, + και /. Κάθε ομάδα τριών bytes (24 bit) χωρίζεται σε τέσσερις αριθμούς των 6 bit και κάθε αριθμός επιλέγει έναν χαρακτήρα από το αλφάβητο. Όταν το μήκος της εισόδου δεν είναι πολλαπλάσιο του τρία, η τελευταία ομάδα συμπληρώνεται με ένα ή δύο σύμβολα =. Το αποτέλεσμα είναι πάντα περίπου 33% μεγαλύτερο από την είσοδο: 4 χαρακτήρες για κάθε 3 bytes.

Υπάρχει επειδή πολλά κανάλια σχεδιάστηκαν για κείμενο. Το email (MIME), τα data: URL σε HTML και CSS, τα πεδία JSON που μεταφέρουν εικόνες ή πιστοποιητικά και οι κεφαλίδες HTTP Basic authentication χρησιμοποιούν όλα Base64 για να μεταφέρουν δυαδικά δεδομένα με ασφάλεια. Δεν είναι κρυπτογράφηση και δεν κρύβει τίποτα: η αποκωδικοποίηση δεν χρειάζεται κλειδί.

Unicode και η παραλλαγή URL-safe

Το Base64 κωδικοποιεί bytes, όχι γράμματα, επομένως το κείμενο πρέπει πρώτα να μετατραπεί σε bytes. Αυτό το εργαλείο χρησιμοποιεί πάντα UTF-8, την κωδικοποίηση πάνω στην οποία λειτουργεί το διαδίκτυο: το é γίνεται δύο bytes και ένα emoji τέσσερα. Η ενσωματωμένη συνάρτηση btoa του προγράμματος περιήγησης από μόνη της πετάει σφάλμα σε οποιονδήποτε χαρακτήρα πάνω από το U+00FF, γι' αυτό οι απλοϊκοί κωδικοποιητές αποτυγχάνουν με τόνους και emoji· εδώ το κείμενο περνά πρώτα από το TextEncoder και η αποκωδικοποίηση το αντιστρέφει με το TextDecoder. Αν τα αποκωδικοποιημένα bytes δεν είναι έγκυρο UTF-8 (μια εικόνα, ένα αρχείο zip), το εργαλείο τα εμφανίζει σε δεκαεξαδική μορφή αντί για μπερδεμένο κείμενο.

Το τυπικό Base64 χρησιμοποιεί τα + και /, που έχουν ειδική σημασία στα URL και στα ονόματα αρχείων. Το URL-safe αλφάβητο της ενότητας 5 του RFC 4648 τα αντικαθιστά με - και _, και η συμπλήρωση συνήθως παραλείπεται. Τα JSON Web Tokens χρησιμοποιούν ακριβώς αυτή τη μορφή. Ο αποκωδικοποιητής δέχεται και τα δύο αλφάβητα καθώς και απούσα συμπλήρωση, οπότε μπορείτε να επικολλήσετε όποιο θέλετε.

Κωδικοποίηση αρχείων και εικόνων

Επιλέξτε ένα αρχείο και το εργαλείο το διαβάζει τοπικά με το FileReader και επιστρέφει το Base64 του ή ένα πλήρες data: URL με τον τύπο MIME του αρχείου, έτοιμο για επικόλληση σε ετικέτα img ή σε φόντο CSS. Οι ενσωματωμένες εικόνες γλιτώνουν ένα αίτημα HTTP, αλλά μεγαλώνουν κατά το ένα τρίτο και δεν μπορούν να αποθηκευτούν χωριστά στην κρυφή μνήμη, γι' αυτό ταιριάζουν σε μικρά εικονίδια και όχι σε φωτογραφίες. Για εικόνες με προεπισκόπηση και έτοιμα αποσπάσματα HTML και CSS, χρησιμοποιήστε το Εικόνα σε Base64.

Συχνές ερωτήσεις

Γιατί το αποτέλεσμα Base64 είναι μεγαλύτερο από την είσοδο;
Κάθε 3 bytes γίνονται 4 χαρακτήρες, οπότε η έξοδος έχει περίπου 4/3 του μεγέθους της εισόδου, συν έως δύο χαρακτήρες συμπλήρωσης. Το κείμενο εκτός ASCII είναι ακόμη μεγαλύτερο, επειδή το UTF-8 χρησιμοποιεί δύο έως τέσσερα bytes ανά χαρακτήρα.
Τι είναι τα σύμβολα = στο τέλος;
Συμπλήρωση. Κάνουν το μήκος της εξόδου πολλαπλάσιο του τέσσερα όταν το μήκος της εισόδου δεν είναι πολλαπλάσιο του τρία. Ένα = σημαίνει ότι η τελευταία ομάδα είχε δύο bytes, δύο = σημαίνουν ότι είχε ένα byte.
Γιατί η αποκωδικοποίηση αποτυγχάνει με σφάλμα μη έγκυρου χαρακτήρα;
Η είσοδος περιέχει κάτι εκτός αλφαβήτου, όπως κενό μέσα σε λέξη, εισαγωγικό ή ένα % από κωδικοποίηση URL. Οι αλλαγές γραμμής και η απούσα συμπλήρωση γίνονται δεκτές· οι άλλοι χαρακτήρες όχι.
Είναι ασφαλές να κωδικοποιήσω έναν κωδικό πρόσβασης σε Base64;
Το Base64 δεν προσφέρει καμία προστασία. Η HTTP Basic authentication στέλνει το user:password σε Base64, γι' αυτό πρέπει να χρησιμοποιείται μόνο μέσω HTTPS. Για την προστασία μυστικών χρησιμοποιήστε πραγματική κρυπτογράφηση ή κατακερματισμό.
Ποια είναι η διαφορά μεταξύ Base64 και Base64url;
Μόνο δύο χαρακτήρες και η συμπλήρωση: το Base64url χρησιμοποιεί - και _ αντί για + και / και συνήθως παραλείπει το =, ώστε το αποτέλεσμα να χωράει σε URL και ονόματα αρχείων χωρίς escape.