Base64 kodeerija ja dekodeerija: muuda teksti Base64-ks ja vastupidi
Tasuta veebitööriist teksti kodeerimiseks Base64-ks või Base64 stringide dekodeerimiseks tagasi tekstiks. Toetab standardset ja URL-ohutut Base64 kodeerimist kohese konversiooniga.
Base64 kodeerija/dekodeerija
Dokumentatsioon
Base64 Kodeerija ja Dekodeerija
Sissejuhatus
Base64 on binaarsete andmete tekstiks kodeerimise skeem, mis esindab binaarset teavet ASCII stringi formaadis. See on loodud selleks, et edastada binaarset formaadis salvestatud andmeid kanalites, mis toetavad usaldusväärselt ainult tekstisisu. Base64 kodeerimine konverteerib binaarsed andmed 64 tähemärgi komplekti (seega ka nimi), mida saab ohutult edastada tekstipõhiste protokollide kaudu ilma andmete rikkumiseta.
Base64 tähemärkide komplekt koosneb:
- Suurtähtedest A-Z (26 tähemärki)
- Väiketähtedest a-z (26 tähemärki)
- Numbrid 0-9 (10 tähemärki)
- Kaks täiendavat tähemärki, tavaliselt "+" ja "/" (2 tähemärki)
See tööriist võimaldab teil hõlpsasti kodeerida teksti Base64 formaati või dekodeerida Base64 stringe tagasi nende algsesse teksti. See on eriti kasulik arendajatele, IT-spetsialistidele ja kõigile, kes töötavad andmetega, mida tuleb edastada ohutult tekstipõhiste kanalite kaudu. Meie reaalajas konversioonifunktsiooni abil näete tulemusi kohe, kui kirjutate, muutes teie kodeerimise ja dekodeerimise töövoo efektiivsemaks.
Kuidas Base64 Kodeerimine Töötab
Kodeerimisprotsess
Base64 kodeerimine töötab, muutes iga kolme baitide (24 bitti) rühma binaarsetest andmetest neljaks Base64 tähemärgiks. Protsess järgib järgmisi samme:
- Muutke sisestatud tekst oma binaarseteks esindusteks (kasutades ASCII või UTF-8 kodeeringut)
- Rühmitage binaarandmed 24 bitiseks (3 baiti) tükkideks
- Jagage iga 24-bitine tükk neljaks 6-bitiseks rühmaks
- Muutke iga 6-bitine rühm vastavaks Base64 tähemärgiks
Kui sisendi pikkus ei ole jagatav 3-ga, lisatakse täiendamiseks "=" tähemärgid, et säilitada 4:3 suhe väljundi ja sisendi pikkuste vahel.
Matemaatiline Esitus
Baitide järjestuse vastavad Base64 tähemärgid arvutatakse järgmiselt:
Kus esindab -ndat tähemärki Base64 tähestikus.
Dekodeerimisprotsess
Base64 dekodeerimine pöörab kodeerimisprotsessi tagasi:
- Muutke iga Base64 tähemärk oma 6-bitiseks väärtuseks
- Koonduge need 6-bitised väärtused kokku
- Rühmitage bitid 8-bitisteks tükkideks (baitideks)
- Muutke iga bait vastavaks tähemärgiks
Täiendamine
Kui kodeeritavate baitide arv ei ole jagatav 3-ga, rakendatakse täiendamist:
- Kui jääb alles üks bait, muudetakse see kaheks Base64 tähemärgiks, millele järgneb "=="
- Kui jääb alles kaks bait, muudetakse need kolmeks Base64 tähemärgiks, millele järgneb "="
Näide
Koodime teksti "Tere" Base64-sse:
- ASCII esitus "Tere": 84 101 114 101
- Binaarsetes esindustes: 01010100 01100101 01110010 01100101
- Rühmitamine 6-bitisteks tükkideks: 010101 000110 010101 110010 011001 01
- Viimases tükis on ainult 2 bitti, seega täiendame nullidega: 010101 000110 010101 110010 011001 010000
- Muutmine kümnendsüsteemi: 21, 6, 21, 50, 25, 0
- Otsimine Base64 tähestikus: V, G, V, y, Z, A
- Tulemuseks on "VGVyZQ=="
Märkus: "=" täiendamine lõpus, kuna sisendi pikkus (4 baiti) ei ole jagatav 3-ga.
Valem
Base64 kodeeritud stringi pikkuse arvutamise üldine valem on:
Kus esindab lae funktsiooni (ümmardamine üles lähima täisarvuni).
Base64 Kodeerija/Dekodeerija Tööriista Kasutamine
Meie Base64 tööriist pakub lihtsat ja tõhusat viisi teksti kodeerimiseks Base64-ks või Base64 dekodeerimiseks tagasi tekstiks. Siin on, kuidas seda kasutada:
Põhikasutus
- Valige toimingurežiim: Valige "Kodeeri", et konverteerida tekst Base64-ks, või "Dekodeeri", et konverteerida Base64 tagasi tekstiks.
- Sisestage oma sisend: Kirjutage või kleepige oma tekst või Base64 string sisendvälja.
- Konverteerige: Klõpsake nuppu "Kodeeri Base64-ks" või "Dekodeeri Base64-st", et teostada konversioon.
- Kopeerige tulemus: Kasutage nuppu "Kopeeri", et kopeerida tulemus oma lõikelauale.
Reaalajas Konversiooni Funktsioon
Meie tööriist sisaldab nüüd reaalajas konversiooni võimalust, mis uuendab väljundit, kui te kirjutate:
- Lubage Reaalajas Konversioon: Märkige tööriista ülaosas "Reaalajas Konversioon" ruut.
- Näe koheseid tulemusi: Kui te kirjutate sisendvälja, uuendatakse väljund automaatselt, ilma et peaksite konversiooninuppu klõpsama.
- Lülitage vajadusel: Saate reaalajas konversiooni igal ajal lubada või keelata vastavalt oma eelistustele.
Reaalajas konversioonifunktsioon on eriti kasulik, kui:
- Töötate lühikeste või keskmise pikkusega tekstide või Base64 stringidega
- Teete järk-järgulisi muudatusi ja vajate kohest tagasisidet
- Uurite, kuidas erinevad tähemärgid kodeeritakse/dekodeeritakse
- Õpite Base64 kodeerimise mustreid
Väga suurte sisendite puhul kasutab tööriist debouncing'i, et säilitada jõudlust, tagades, et konversioon toimub ainult pärast seda, kui te kirjutamisest lühidalt peatute, mitte iga klahvivajutuse korral.
Kasutusalad
Base64 kodeerimist kasutatakse laialdaselt erinevates rakendustes:
-
E-kirja Lisad: MIME (Mitmeotstarbeline Interneti Posti Laiendus) kasutab Base64, et kodeerida binaarseid lisandeid e-kirjas.
-
Andme-URL-id: Väikeste piltide, fontide või muude ressursside otse HTML-i, CSS-i või JavaScripti embedimine
data:
URL skeemi abil. -
API Suhtlused: Binaarsete andmete ohutu edastamine JSON-i koormustes või muudes tekstipõhistes API formaatides.
-
Binaarsete Andmete Salvestamine Tekstivormingutes: Kui binaarsed andmed tuleb salvestada XML-is, JSON-is või muudes tekstipõhistes formaatides.
-
Autentimissüsteemid: HTTP-s kasutatav põhja autentimine kasutab Base64 kodeerimist (kuigi see ei ole turvalisuse jaoks, vaid lihtsalt kodeerimiseks).
-
Krüptograafia: Erinevate krüptograafiliste protokollide ja süsteemide osana, sageli võtmete või sertifikaatide kodeerimiseks.
-
Küpsiste Väärtused: Kompleksete andmestruktuuride kodeerimine, et neid küpsistesse salvestada.
Alternatiivid
Kuigi Base64 on laialdaselt kasutatav, on teatud olukordades, kus võivad olla sobivamad alternatiivid:
-
URL-ohutu Base64: Variant, mis kasutab "-" ja "_" asemel "+" ja "/", et vältida URL kodeerimise probleeme. Kasulik andmete jaoks, mis sisalduvad URL-id.
-
Base32: Kasutab 32 tähemärki, mis toob kaasa pikema väljundi, kuid parema inimloetavuse ja suuruse mitteerinevuse.
-
Hex Kodeerimine: Lihtne konversioon heksadesse, mis on vähem efektiivne (kahekordistab suuruse), kuid väga lihtne ja laialdaselt toetatud.
-
Binaarne Ülekandmine: Suurte failide puhul või kui efektiivsus on kriitiline, on otse binaarsete ülekandeprotokollide, nagu HTTP, kasutamine koos sobivate Content-Type päistega eelistatavam.
-
Kompresseerimine + Base64: Suurte tekstiliste andmete puhul võib enne kodeerimist kompressioon aidata suuruse suurenemist leevendada.
-
JSON/XML Serialiseerimine: Struktureeritud andmete jaoks võib kasutada natiivset JSON-i või XML-i serialiseerimist, mis võib olla Base64 kodeerimisest sobivam.
Ajalugu
Base64 kodeerimine on oma juured saanud varajastest arvutamisest ja telekommunikatsioonisüsteemidest, kus binaarset teavet tuli edastada tekstiks mõeldud kanalite kaudu.
Base64 ametlik spetsifikatsioon avaldati esmakordselt 1987. aastal RFC 989 osana, mis määratles Privaatsuse Tõhustatud Posti (PEM). Seda uuendati hiljem RFC 1421 (1993) ja RFC 2045 (1996, kui osa MIME).
Termin "Base64" tuleneb sellest, et kodeerimine kasutab 64 erinevat ASCII tähemärki binaarsete andmete esindamiseks. See 64 tähemärgi valik oli teadlik, kuna 64 on 2 astmes 6 (2^6), mis muudab konversiooni binaarse ja Base64 vahel efektiivseks.
Aja jooksul on tekkinud mitmeid Base64 variante:
- Standardne Base64: Nagu on määratletud RFC 4648, kasutades A-Z, a-z, 0-9, +, / ja = täiendamiseks
- URL-ohutu Base64: Kasutab - ja _ asemel + ja / URL kodeerimise probleemide vältimiseks
- Failinimi-ohutu Base64: Sarnane URL-ohutule, mõeldud failinimede kasutamiseks
- IMAP-i Muudetud Base64: Kasutatakse IMAP protokollis erineva erimärgistusega
Kuigi Base64 on üle kolme aastakümne vana, jääb see kaasaegse arvutamise aluseks, eriti veebirakenduste ja API-de tõusuga, mis toetuvad tugevalt tekstipõhiste andmevormingute, nagu JSON, kasutamisele.
Koodinäited
Siin on näited Base64 kodeerimisest ja dekodeerimisest erinevates programmeerimiskeeltes:
1// JavaScript Base64 Kodeerimine/Dekodeerimine
2function encodeToBase64(text) {
3 return btoa(text);
4}
5
6function decodeFromBase64(base64String) {
7 try {
8 return atob(base64String);
9 } catch (e) {
10 throw new Error("Vale Base64 string");
11 }
12}
13
14// Näide kasutamisest
15const originalText = "Tere, Maailm!";
16const encoded = encodeToBase64(originalText);
17console.log("Kodeeritud:", encoded); // VGVyZSwgTWFpbG0h
18
19try {
20 const decoded = decodeFromBase64(encoded);
21 console.log("Dekodeeritud:", decoded); // Tere, Maailm!
22} catch (error) {
23 console.error(error.message);
24}
25
1# Python Base64 Kodeerimine/Dekodeerimine
2import base64
3
4def encode_to_base64(text):
5 # Muutke string baitideks ja seejärel kodeerige
6 text_bytes = text.encode('utf-8')
7 base64_bytes = base64.b64encode(text_bytes)
8 return base64_bytes.decode('utf-8')
9
10def decode_from_base64(base64_string):
11 try:
12 # Muutke base64 string baitideks ja seejärel dekodeerige
13 base64_bytes = base64_string.encode('utf-8')
14 text_bytes = base64.b64decode(base64_bytes)
15 return text_bytes.decode('utf-8')
16 except Exception as e:
17 raise ValueError(f"Vale Base64 string: {e}")
18
19# Näide kasutamisest
20original_text = "Tere, Maailm!"
21encoded = encode_to_base64(original_text)
22print(f"Kodeeritud: {encoded}") # VGVyZSwgTWFpbG0h
23
24try:
25 decoded = decode_from_base64(encoded)
26 print(f"Dekodeeritud: {decoded}") # Tere, Maailm!
27except ValueError as e:
28 print(e)
29
1// Java Base64 Kodeerimine/Dekodeerimine
2import java.util.Base64;
3import java.nio.charset.StandardCharsets;
4
5public class Base64Example {
6 public static String encodeToBase64(String text) {
7 byte[] textBytes = text.getBytes(StandardCharsets.UTF_8);
8 byte[] encodedBytes = Base64.getEncoder().encode(textBytes);
9 return new String(encodedBytes, StandardCharsets.UTF_8);
10 }
11
12 public static String decodeFromBase64(String base64String) {
13 try {
14 byte[] base64Bytes = base64String.getBytes(StandardCharsets.UTF_8);
15 byte[] decodedBytes = Base64.getDecoder().decode(base64Bytes);
16 return new String(decodedBytes, StandardCharsets.UTF_8);
17 } catch (IllegalArgumentException e) {
18 throw new IllegalArgumentException("Vale Base64 string: " + e.getMessage());
19 }
20 }
21
22 public static void main(String[] args) {
23 String originalText = "Tere, Maailm!";
24 String encoded = encodeToBase64(originalText);
25 System.out.println("Kodeeritud: " + encoded); // VGVyZSwgTWFpbG0h
26
27 try {
28 String decoded = decodeFromBase64(encoded);
29 System.out.println("Dekodeeritud: " + decoded); // Tere, Maailm!
30 } catch (IllegalArgumentException e) {
31 System.err.println(e.getMessage());
32 }
33 }
34}
35
1<?php
2// PHP Base64 Kodeerimine/Dekodeerimine
3function encodeToBase64($text) {
4 return base64_encode($text);
5}
6
7function decodeFromBase64($base64String) {
8 $decoded = base64_decode($base64String, true);
9 if ($decoded === false) {
10 throw new Exception("Vale Base64 string");
11 }
12 return $decoded;
13}
14
15// Näide kasutamisest
16$originalText = "Tere, Maailm!";
17$encoded = encodeToBase64($originalText);
18echo "Kodeeritud: " . $encoded . "\n"; // VGVyZSwgTWFpbG0h
19
20try {
21 $decoded = decodeFromBase64($encoded);
22 echo "Dekodeeritud: " . $decoded . "\n"; // Tere, Maailm!
23} catch (Exception $e) {
24 echo "Viga: " . $e->getMessage() . "\n";
25}
26?>
27
1// C# Base64 Kodeerimine/Dekodeerimine
2using System;
3using System.Text;
4
5class Base64Example
6{
7 public static string EncodeToBase64(string text)
8 {
9 byte[] textBytes = Encoding.UTF8.GetBytes(text);
10 return Convert.ToBase64String(textBytes);
11 }
12
13 public static string DecodeFromBase64(string base64String)
14 {
15 try
16 {
17 byte[] base64Bytes = Convert.FromBase64String(base64String);
18 return Encoding.UTF8.GetString(base64Bytes);
19 }
20 catch (FormatException)
21 {
22 throw new FormatException("Vale Base64 string");
23 }
24 }
25
26 static void Main()
27 {
28 string originalText = "Tere, Maailm!";
29 string encoded = EncodeToBase64(originalText);
30 Console.WriteLine($"Kodeeritud: {encoded}"); // VGVyZSwgTWFpbG0h
31
32 try
33 {
34 string decoded = DecodeFromBase64(encoded);
35 Console.WriteLine($"Dekodeeritud: {decoded}"); // Tere, Maailm!
36 }
37 catch (FormatException e)
38 {
39 Console.WriteLine($"Viga: {e.Message}");
40 }
41 }
42}
43
1# Ruby Base64 Kodeerimine/Dekodeerimine
2require 'base64'
3
4def encode_to_base64(text)
5 Base64.strict_encode64(text)
6end
7
8def decode_from_base64(base64_string)
9 begin
10 Base64.strict_decode64(base64_string)
11 rescue ArgumentError => e
12 raise "Vale Base64 string: #{e.message}"
13 end
14end
15
16# Näide kasutamisest
17original_text = "Tere, Maailm!"
18encoded = encode_to_base64(original_text)
19puts "Kodeeritud: #{encoded}" # VGVyZSwgTWFpbG0h
20
21begin
22 decoded = decode_from_base64(encoded)
23 puts "Dekodeeritud: #{decoded}" # Tere, Maailm!
24rescue StandardError => e
25 puts "Viga: #{e.message}"
26end
27
1// Go Base64 Kodeerimine/Dekodeerimine
2package main
3
4import (
5 "encoding/base64"
6 "fmt"
7)
8
9func encodeToBase64(text string) string {
10 return base64.StdEncoding.EncodeToString([]byte(text))
11}
12
13func decodeFromBase64(base64_string string) (string, error) {
14 bytes, err := base64.StdEncoding.DecodeString(base64_string)
15 if err != nil {
16 return "", fmt.Errorf("vale Base64 string: %v", err)
17 }
18 return string(bytes), nil
19}
20
21func main() {
22 originalText := "Tere, Maailm!"
23 encoded := encodeToBase64(originalText)
24 fmt.Println("Kodeeritud:", encoded) // VGVyZSwgTWFpbG0h
25
26 decoded, err := decodeFromBase64(encoded)
27 if err != nil {
28 fmt.Println("Viga:", err)
29 } else {
30 fmt.Println("Dekodeeritud:", decoded) // Tere, Maailm!
31 }
32}
33
1// Swift Base64 Kodeerimine/Dekodeerimine
2import Foundation
3
4func encodeToBase64(_ text: String) -> String? {
5 if let data = text.data(using: .utf8) {
6 return data.base64EncodedString()
7 }
8 return nil
9}
10
11func decodeFromBase64(_ base64String: String) -> String? {
12 if let data = Data(base64Encoded: base64String) {
13 return String(data: data, encoding: .utf8)
14 }
15 return nil
16}
17
18// Näide kasutamisest
19let originalText = "Tere, Maailm!"
20if let encoded = encodeToBase64(originalText) {
21 print("Kodeeritud: \(encoded)") // VGVyZSwgTWFpbG0h
22
23 if let decoded = decodeFromBase64(encoded) {
24 print("Dekodeeritud: \(decoded)") // Tere, Maailm!
25 } else {
26 print("Viga: Ei saanud dekodeerida Base64 stringi")
27 }
28} else {
29 print("Viga: Ei saanud kodeerida teksti")
30}
31
1' Excel VBA Base64 Kodeerimine/Dekodeerimine
2' Märkus: See nõuab viidet Microsoft XML, v6.0
3Function EncodeToBase64(text As String) As String
4 Dim xmlObj As Object
5 Set xmlObj = CreateObject("MSXML2.DOMDocument")
6
7 Dim xmlNode As Object
8 Set xmlNode = xmlObj.createElement("b64")
9
10 xmlNode.DataType = "bin.base64"
11 xmlNode.nodeTypedValue = StrConv(text, vbFromUnicode)
12
13 EncodeToBase64 = xmlNode.text
14
15 Set xmlNode = Nothing
16 Set xmlObj = Nothing
17End Function
18
19Function DecodeFromBase64(base64String As String) As String
20 On Error GoTo ErrorHandler
21
22 Dim xmlObj As Object
23 Set xmlObj = CreateObject("MSXML2.DOMDocument")
24
25 Dim xmlNode As Object
26 Set xmlNode = xmlObj.createElement("b64")
27
28 xmlNode.DataType = "bin.base64"
29 xmlNode.text = base64String
30
31 DecodeFromBase64 = StrConv(xmlNode.nodeTypedValue, vbUnicode)
32
33 Set xmlNode = Nothing
34 Set xmlObj = Nothing
35 Exit Function
36
37ErrorHandler:
38 DecodeFromBase64 = "Viga: Vale Base64 string"
39End Function
40
41' Kasutamine töölehe sees:
42' =EncodeToBase64("Tere, Maailm!")
43' =DecodeFromBase64("VGVyZSwgTWFpbG0h")
44
1# R Base64 Kodeerimine/Dekodeerimine
2# Nõuab 'base64enc' paketti
3# install.packages("base64enc")
4library(base64enc)
5
6encode_to_base64 <- function(text) {
7 # Muutke tekst toorandmeteks, seejärel kodeerige
8 text_raw <- charToRaw(text)
9 base64_encoded <- base64encode(text_raw)
10 return(rawToChar(base64_encoded))
11}
12
13decode_from_base64 <- function(base64_string) {
14 tryCatch({
15 # Muutke base64 string toorandmeteks, seejärel dekodeerige
16 base64_raw <- charToRaw(base64_string)
17 decoded_raw <- base64decode(base64_raw)
18 return(rawToChar(decoded_raw))
19 }, error = function(e) {
20 stop(paste("Vale Base64 string:", e$message))
21 })
22}
23
24# Näide kasutamisest
25original_text <- "Tere, Maailm!"
26encoded <- encode_to_base64(original_text)
27cat("Kodeeritud:", encoded, "\n") # VGVyZSwgTWFpbG0h
28
29tryCatch({
30 decoded <- decode_from_base64(encoded)
31 cat("Dekodeeritud:", decoded, "\n") # Tere, Maailm!
32}, error = function(e) {
33 cat("Viga:", e$message, "\n")
34})
35
1% MATLAB Base64 Kodeerimine/Dekodeerimine
2function demo_base64()
3 originalText = 'Tere, Maailm!';
4
5 % Kodeeri
6 encoded = encode_to_base64(originalText);
7 fprintf('Kodeeritud: %s\n', encoded); % VGVyZSwgTWFpbG0h
8
9 % Dekodeeri
10 try
11 decoded = decode_from_base64(encoded);
12 fprintf('Dekodeeritud: %s\n', decoded); % Tere, Maailm!
13 catch e
14 fprintf('Viga: %s\n', e.message);
15 end
16end
17
18function encoded = encode_to_base64(text)
19 % Muutke tekst uint8 massiiviks ja kodeerige
20 bytes = uint8(text);
21 encoded = base64encode(bytes);
22end
23
24function decoded = decode_from_base64(base64String)
25 try
26 % Dekodeerige base64 string uint8 massiiviks
27 bytes = base64decode(base64String);
28 decoded = char(bytes);
29 catch
30 error('Vale Base64 string');
31 end
32end
33
1// C Base64 Kodeerimine/Dekodeerimine OpenSSL-i abil
2#include <stdio.h>
3#include <string.h>
4#include <openssl/bio.h>
5#include <openssl/evp.h>
6#include <openssl/buffer.h>
7#include <stdint.h>
8
9char* encode_to_base64(const char* input) {
10 BIO *bio, *b64;
11 BUF_MEM *bufferPtr;
12
13 b64 = BIO_new(BIO_f_base64());
14 bio = BIO_new(BIO_s_mem());
15 bio = BIO_push(b64, bio);
16
17 BIO_set_flags(bio, BIO_FLAGS_BASE64_NO_NL);
18 BIO_write(bio, input, strlen(input));
19 BIO_flush(bio);
20 BIO_get_mem_ptr(bio, &bufferPtr);
21
22 char* result = (char*)malloc(bufferPtr->length + 1);
23 memcpy(result, bufferPtr->data, bufferPtr->length);
24 result[bufferPtr->length] = '\0';
25
26 BIO_free_all(bio);
27
28 return result;
29}
30
31char* decode_from_base64(const char* input) {
32 BIO *bio, *b64;
33 size_t length = strlen(input);
34 char* buffer = (char*)malloc(length);
35
36 b64 = BIO_new(BIO_f_base64());
37 bio = BIO_new_mem_buf(input, -1);
38 bio = BIO_push(b64, bio);
39
40 BIO_set_flags(bio, BIO_FLAGS_BASE64_NO_NL);
41 int decoded_length = BIO_read(bio, buffer, length);
42
43 if (decoded_length <= 0) {
44 free(buffer);
45 BIO_free_all(bio);
46 return NULL; // Vale Base64 sisend
47 }
48
49 buffer[decoded_length] = '\0';
50
51 BIO_free_all(bio);
52
53 return buffer;
54}
55
56int main() {
57 const char* original_text = "Tere, Maailm!";
58
59 char* encoded = encode_to_base64(original_text);
60 printf("Kodeeritud: %s\n", encoded); // VGVyZSwgTWFpbG0h
61
62 char* decoded = decode_from_base64(encoded);
63 if (decoded) {
64 printf("Dekodeeritud: %s\n", decoded); // Tere, Maailm!
65 free(decoded);
66 } else {
67 printf("Viga: Vale Base64 string\n");
68 }
69
70 free(encoded);
71
72 return 0;
73}
74
1// Rust Base64 Kodeerimine/Dekodeerimine
2use base64::{encode, decode};
3use std::str;
4
5fn encode_to_base64(text: &str) -> String {
6 encode(text)
7}
8
9fn decode_from_base64(base64_string: &str) -> Result<String, String> {
10 match decode(base64_string) {
11 Ok(bytes) => {
12 match str::from_utf8(&bytes) {
13 Ok(text) => Ok(text.to_string()),
14 Err(e) => Err(format!("Vale UTF-8 järjestus: {}", e))
15 }
16 },
17 Err(e) => Err(format!("Vale Base64 string: {}", e))
18 }
19}
20
21fn main() {
22 let original_text = "Tere, Maailm!";
23 let encoded = encode_to_base64(original_text);
24 println!("Kodeeritud: {}", encoded); // VGVyZSwgTWFpbG0h
25
26 match decode_from_base64(&encoded) {
27 Ok(decoded) => println!("Dekodeeritud: {}", decoded), // Tere, Maailm!
28 Err(e) => println!("Viga: {}", e)
29 }
30}
31
1// JavaScript rakendamine reaalajas konversiooniga
2
3const textInput = document.getElementById('text-input');
4const base64Output = document.getElementById('base64-output');
5const liveConversionCheckbox = document.getElementById('live-conversion');
6let debounceTimeout = null;
7
8// Funktsioon kodeerimiseks debouncinguga jõudluse jaoks
9function liveEncode() {
10 // Tühjendage kõik olemasolevad ajad
11 if (debounceTimeout) {
12 clearTimeout(debounceTimeout);
13 }
14
15 // Seadke uus aeg, et vältida liigset töötlemist kiire kirjutamise ajal
16 debounceTimeout = setTimeout(() => {
17 try {
18 const text = textInput.value;
19 if (text.trim()) {
20 base64Output.value = btoa(text);
21 } else {
22 base64Output.value = '';
23 }
24 } catch (e) {
25 console.error('Kodeerimise viga:', e);
26 // Käitlege viga sobivalt kasutajaliideses
27 }
28 }, 300); // 300ms debouncing viivitus
29}
30
31// Ürituste kuulajad
32liveConversionCheckbox.addEventListener('change', function() {
33 if (this.checked) {
34 // Lubage reaalajas konversioon
35 textInput.addEventListener('input', liveEncode);
36 // Algne kodeerimine
37 liveEncode();
38 } else {
39 // Keelake reaalajas konversioon
40 textInput.removeEventListener('input', liveEncode);
41 }
42});
43
Äärmuslikud Juhud ja Arvestused
Base64 kodeerimise ja dekodeerimisega töötades olge teadlikud nendest olulistest arvestustest:
-
Unicode ja mitte-ASCII tähemärgid: Kui kodeerite teksti, millel on mitte-ASCII tähemärgid, veenduge, et kasutate enne Base64 kodeerimist õiget tähemärgi kodeeringut (tavaliselt UTF-8).
-
Täiendamine: Standardne Base64 kasutab täiendamiseks "=" tähemärke, et tagada väljundi pikkuse jagamine 4-ga. Mõned rakendused lubavad täiendamise vahelejätmist, mis võib põhjustada ühilduvusprobleeme.
-
Reavahed: Traditsioonilised Base64 rakendused sisestavad lugemiseks reavahed (tavaliselt iga 76 tähemärgi järel), kuid kaasaegsed rakendused jätavad need sageli vahele.
-
URL-ohutu Base64: Standardne Base64 kasutab "+" ja "/" tähemärke, millel on URL-des erilised tähendused. URL kontekstides kasutage URL-ohutut Base64, mis asendab need "-" ja "_".
-
Tühikud: Dekodeerimise ajal võivad mõned rakendused olla leebed ja ignoreerida tühikuid, samas kui teised nõuavad täpset sisendit.
-
Suuruse Suurenemine: Base64 kodeerimine suurendab andmete suurust umbes 33% (4 väljundbaiti iga 3 sisendbaiti kohta).
-
Jõudlus: Base64 kodeerimine/dekodeerimine võib olla väga suurtel andmetel arvutuslikult intensiivne. Meie tööriist kasutab debouncing'ut, et säilitada reageerimisvõimet isegi suurte sisendite korral.
-
Reaalajas Konversiooni Arvestused: Kui kasutate reaalajas konversiooni funktsiooni väga suurte sisendite korral, võite märgata väikest viivitust, kui tööriist töötleb andmeid. See on normaalne ja aitab säilitada brauseri jõudlust.
Korduma Kippuvad Küsimused
Mis on Reaalajas Konversiooni funktsioon?
Reaalajas konversiooni funktsioon uuendab väljundit automaatselt, kui te kirjutate, ilma et peaksite klõpsama kodeerimise või dekodeerimise nuppu. See pakub kohest tagasisidet ja muudab tööriista interaktiivsemaks ja efektiivsemaks.
Kas Reaalajas Konversioon aeglustab mu brauserit suurte sisendite korral?
Meie rakendamine kasutab debouncing'ut, et tagada hea jõudlus isegi suurte sisendite korral. Konversioon toimub ainult pärast seda, kui te kirjutamisest lühidalt peatute, mitte iga klahvivajutuse korral, mis takistab liigset töötlemist kiire kirjutamise ajal.
Millal peaksin kasutama Reaalajas Konversiooni vs. manuaalset konversiooni?
Reaalajas konversioon on ideaalne interaktiivseks tööks, kus soovite kohest tagasisidet. Väga suurte andmekogumite puhul või kui soovite enne konversiooni oma sisendit üle vaadata, võite eelistada manuaalset konversiooni võimalust.
Kas Reaalajas Konversioon töötab nii kodeerimise kui ka dekodeerimise jaoks?
Jah, reaalajas konversioonifunktsioon töötab mõlemas suunas - tekstist Base64-ks ja Base64-st tekstiks.
Mis juhtub, kui sisestan vale Base64 reaalajas konversiooniga?
Kui sisestate dekodeerimise režiimis vale Base64 tähemärgid, kuvatakse tööriist reaalajas veateade, aidates teil probleemi kohe tuvastada ja parandada.
Viidatud Allikad
- RFC 4648 - Base16, Base32 ja Base64 Andmete Kodeerimine
- RFC 2045 - MIME Osa Üks: Interneti Sõnumite Keha Vorming
- MDN Web Docs: Base64 kodeerimine ja dekodeerimine
- Base64 - Vikipeedia
- MIME - Vikipeedia
Proovige meie Base64 Kodeerija/Dekodeerija tööriista täna, et kiiresti konverteerida teksti ja Base64 formaate reaalajas konversiooniga. Olgu te arendaja, kes töötab API-dega, käsitlemas e-kirja lisandeid või binaarsete andmete embedimist tekstivormingutes, muudab meie tööriist protsessi lihtsaks ja tõhusaks.
Seotud tööriistad
Avasta rohkem tööriistu, mis võivad olla kasulikud teie töövoos