Base64-kooderi ja -purkaja: Muunna teksti Base64:ksi/ Base64:stä
Ilmainen online-työkalu tekstin koodamiseen Base64:ksi tai Base64-merkkijonojen purkamiseen takaisin tekstiksi. Tukee normaalia ja URL-turvallista Base64-koodausta välittömällä muunnoksella.
Base64-kooderi/Purku
Muuta teksti Base64-koodaukseen ja takaisin
Dokumentaatio
Base64-kooderi ja -dekooderi
Johdanto
Base64 on binaarista tekstiin koodausjärjestelmä, joka esittää binaaridataa ASCII-merkkijonomuodossa. Se on suunniteltu kuljettamaan binaarimuodossa tallennettua dataa kanavilla, jotka tukevat luotettavasti vain tekstisisältöä. Base64-koodaus muuntaa binaaridatan 64 merkin joukkoon (siksi nimi), jota voidaan turvallisesti siirtää tekstipohjaisilla protokollilla ilman datan korruptiota.
Base64-merkkijoukko koostuu:
- Suurista kirjaimista A-Z (26 merkkiä)
- Pienistä kirjaimista a-z (26 merkkiä)
- Numeroista 0-9 (10 merkkiä)
- Kahdesta lisämerkistä, tyypillisesti "+" ja "/" (2 merkkiä)
Tämä työkalu mahdollistaa tekstin helpon koodauksen Base64-muotoon tai Base64-merkkijonojen dekoodauksen takaisin alkuperäiseen tekstiinsä. Se on erityisen hyödyllinen kehittäjille, IT-ammattilaisille ja kaikille, jotka työskentelevät datan kanssa, joka on lähetettävä turvallisesti tekstipohjaisilla kanavilla.
Kuinka Base64-koodaus toimii
Koodausprosessi
Base64-koodaus toimii muuntamalla jokaisen kolmen tavun (24 bittiä) binaaridatan neljäksi Base64-merkkijonoksi. Prosessi etenee seuraavasti:
- Muunna syöte teksti sen binaariedustukseen (käyttäen ASCII- tai UTF-8-koodausta)
- Ryhmittele binaaridata 24 bittiä (3 tavua) sisältäviksi lohkoiksi
- Jaa jokainen 24-bittinen lohko neljään 6-bittiseen ryhmään
- Muunna jokainen 6-bittinen ryhmä vastaavaksi Base64-merkkijonoksi
Kun syötteen pituus ei ole jaollinen kolmella, täyte "=" -merkkejä lisätään 4:3-suhteen ylläpitämiseksi tulosten ja syötteen pituuksien välillä.
Matemaattinen esitys
Tavujonolle vastaavat Base64-merkit lasketaan seuraavasti:
Missä edustaa :ttä merkkiä Base64-aakkostossa.
Dekoodausprosessi
Base64-dekoodaus kääntää koodausprosessin:
- Muunna jokainen Base64-merkki sen 6-bittiseksi arvoksi
- Yhdistä nämä 6-bittiset arvot
- Ryhmittele bitit 8-bittisiksi lohkoiksi (tavuiksi)
- Muunna jokainen tavu vastaavaksi merkiksi
Täyte
Kun koodattavien tavujen määrä ei ole jaollinen kolmella, täytettä käytetään:
- Jos jäljellä on yksi tavu, se muunnetaan kahdeksi Base64-merkkijonoksi, joiden jälkeen tulee "=="
- Jos jäljellä on kaksi tavua, ne muunnetaan kolmeksi Base64-merkkijonoksi, joiden jälkeen tulee "="
Esimerkki
Koodataan teksti "Hello" Base64:een:
- "Hello":n ASCII-edustus: 72 101 108 108 111
- Binaariedustus: 01001000 01100101 01101100 01101100 01101111
- Ryhmittely 6-bittisiin lohkoihin: 010010 000110 010101 101100 011011 000110 1111
- Viimeinen lohko sisältää vain 4 bittiä, joten täytämme nollilla: 010010 000110 010101 101100 011011 000110 111100
- Muuntaminen desimaaliksi: 18, 6, 21, 44, 27, 6, 60
- Etsiminen Base64-aakkostosta: S, G, V, s, b, G, 8
- Tulos on "SGVsbG8="
Huomaa "=" -täyte lopussa, koska syötteen pituus (5 tavua) ei ole jaollinen kolmella.
Kaava
Base64-koodatun merkkijonon pituuden laskemisen yleinen kaava on:
Missä edustaa kattofunktiota (pyöristämistä ylöspäin lähimpään kokonaislukuun).
Käyttötapaukset
Base64-koodaus on laajasti käytössä erilaisissa sovelluksissa:
-
Sähköpostiliitteet: MIME (monipuolinen internet-sähköpostin laajennus) käyttää Base64:ää binaaristen liitteiden koodamiseen sähköpostissa.
-
Data-URL:t: Pienien kuvien, fonttien tai muiden resurssien upottaminen suoraan HTML:ään, CSS:ään tai JavaScriptiin
data:
URL -kaavalla. -
API-viestintä: Binaaridatan turvallinen siirtäminen JSON-kuormissa tai muissa tekstipohjaisissa API-muodoissa.
-
Binaaridatan tallentaminen tekstimuodoissa: Kun binaaridata on tallennettava XML:ään, JSON:iin tai muihin tekstipohjaisiin muotoihin.
-
Todennusjärjestelmät: HTTP:n perusautentikointi käyttää Base64-koodausta (vaikka se ei ole turvallista, vain koodauksen vuoksi).
-
Salaus: Osana erilaisia salausprotokollia ja -järjestelmiä, usein avainten tai sertifikaattien koodauksessa.
-
Evästeiden arvot: Monimutkaisten tietorakenteiden koodaus evästeisiin tallennettavaksi.
Vaihtoehdot
Vaikka Base64 on laajalti käytössä, on olemassa vaihtoehtoja, jotka voivat olla sopivampia tietyissä tilanteissa:
-
URL-turvallinen Base64: Muunnos, joka käyttää "-" ja "_" "+" ja "/" sijaan, jotta vältetään URL-koodausongelmat. Hyödyllinen datalle, joka sisällytetään URL-osoitteisiin.
-
Base32: Käyttää 32-merkkistä joukkoa, mikä johtaa pidempään tulokseen, mutta parempaan ihmislukemiseen ja kirjainherkkyyteen.
-
Hex-koodaus: Yksinkertainen muunnos heksadesimaaliin, joka on vähemmän tehokasta (kaksinkertaistaa koon), mutta hyvin yksinkertaista ja laajasti tuettua.
-
Binaarisiirto: Suurille tiedostoille tai kun tehokkuus on kriittistä, suorat binaarisiirtoprotokollat, kuten HTTP, asianmukaisilla Content-Type-otsikoilla, ovat suositeltavampia.
-
Pakkaus + Base64: Suurille tekstidatoille pakkaaminen ennen koodausta voi vähentää koon kasvua.
-
JSON/XML-serialisointi: Rakenne-datalle alkuperäisen JSON- tai XML-serialisoinnin käyttäminen voi olla sopivampaa kuin Base64-koodaus.
Historia
Base64-koodaus juontaa juurensa varhaiseen tietojenkäsittelyyn ja telekommunikaatiojärjestelmiin, joissa binaaridataa oli lähetettävä kanavilla, jotka oli suunniteltu tekstille.
Base64:n virallinen spesifikaatio julkaistiin ensimmäisen kerran vuonna 1987 osana RFC 989, joka määritteli yksityisen parannetun postin (PEM). Tämä päivitettiin myöhemmin RFC 1421:ssä (1993) ja RFC 2045:ssä (1996, osana MIMEa).
Termi "Base64" tulee siitä, että koodaus käyttää 64 eri ASCII-merkkiä binaaridatan esittämiseen. Tämä 64 merkin valinta oli tarkoituksellista, koska 64 on kahden potenssi (2^6), mikä tekee muunnoksesta binaarista Base64:een tehokasta.
Ajan myötä useita Base64-muunnoksia on syntynyt:
- Standardi Base64: Kuten RFC 4648 määrittelee, käyttäen A-Z, a-z, 0-9, +, / ja = täytteenä
- URL-turvallinen Base64: Käyttää - ja _ "+" ja / sijaan, jotta vältetään URL-koodausongelmat
- Tiedostonimi-turvallinen Base64: Samankaltainen kuin URL-turvallinen, suunniteltu käytettäväksi tiedostonimissä
- Muokattu Base64 IMAP:lle: Käytetään IMAP-protokollassa eri erikoismerkkijoukolla
Huolimatta siitä, että se on yli kolmekymmentä vuotta vanha, Base64 pysyy perustyökaluna nykyaikaisessa tietojenkäsittelyssä, erityisesti verkkosovellusten ja API:en myötä, jotka nojaavat voimakkaasti tekstipohjaisiin tietomuotoihin, kuten JSON.
Koodiesimerkit
Tässä on esimerkkejä Base64-koodauksesta ja -dekoodauksesta eri ohjelmointikielillä:
1// JavaScript Base64-koodaus/dekoodaus
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("Virheellinen Base64-merkkijono");
11 }
12}
13
14// Esimerkin käyttö
15const originalText = "Hello, World!";
16const encoded = encodeToBase64(originalText);
17console.log("Koodattu:", encoded); // SGVsbG8sIFdvcmxkIQ==
18
19try {
20 const decoded = decodeFromBase64(encoded);
21 console.log("Dekoodattu:", decoded); // Hello, World!
22} catch (error) {
23 console.error(error.message);
24}
25
1# Python Base64-koodaus/dekoodaus
2import base64
3
4def encode_to_base64(text):
5 # Muunna merkkijono tavuiksi ja sitten koodaa
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 # Muunna base64-merkkijono tavuiksi ja sitten dekoodaa
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"Virheellinen Base64-merkkijono: {e}")
18
19# Esimerkin käyttö
20original_text = "Hello, World!"
21encoded = encode_to_base64(original_text)
22print(f"Koodattu: {encoded}") # SGVsbG8sIFdvcmxkIQ==
23
24try:
25 decoded = decode_from_base64(encoded)
26 print(f"Dekoodattu: {decoded}") # Hello, World!
27except ValueError as e:
28 print(e)
29
1// Java Base64-koodaus/dekoodaus
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("Virheellinen Base64-merkkijono: " + e.getMessage());
19 }
20 }
21
22 public static void main(String[] args) {
23 String originalText = "Hello, World!";
24 String encoded = encodeToBase64(originalText);
25 System.out.println("Koodattu: " + encoded); // SGVsbG8sIFdvcmxkIQ==
26
27 try {
28 String decoded = decodeFromBase64(encoded);
29 System.out.println("Dekoodattu: " + decoded); // Hello, World!
30 } catch (IllegalArgumentException e) {
31 System.err.println(e.getMessage());
32 }
33 }
34}
35
1<?php
2// PHP Base64-koodaus/dekoodaus
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("Virheellinen Base64-merkkijono");
11 }
12 return $decoded;
13}
14
15// Esimerkin käyttö
16$originalText = "Hello, World!";
17$encoded = encodeToBase64($originalText);
18echo "Koodattu: " . $encoded . "\n"; // SGVsbG8sIFdvcmxkIQ==
19
20try {
21 $decoded = decodeFromBase64($encoded);
22 echo "Dekoodattu: " . $decoded . "\n"; // Hello, World!
23} catch (Exception $e) {
24 echo "Virhe: " . $e->getMessage() . "\n";
25}
26?>
27
1// C# Base64-koodaus/dekoodaus
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("Virheellinen Base64-merkkijono");
23 }
24 }
25
26 static void Main()
27 {
28 string originalText = "Hello, World!";
29 string encoded = EncodeToBase64(originalText);
30 Console.WriteLine($"Koodattu: {encoded}"); // SGVsbG8sIFdvcmxkIQ==
31
32 try
33 {
34 string decoded = DecodeFromBase64(encoded);
35 Console.WriteLine($"Dekoodattu: {decoded}"); // Hello, World!
36 }
37 catch (FormatException e)
38 {
39 Console.WriteLine($"Virhe: {e.Message}");
40 }
41 }
42}
43
1# Ruby Base64-koodaus/dekoodaus
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 "Virheellinen Base64-merkkijono: #{e.message}"
13 end
14end
15
16# Esimerkin käyttö
17original_text = "Hello, World!"
18encoded = encode_to_base64(original_text)
19puts "Koodattu: #{encoded}" # SGVsbG8sIFdvcmxkIQ==
20
21begin
22 decoded = decode_from_base64(encoded)
23 puts "Dekoodattu: #{decoded}" # Hello, World!
24rescue StandardError => e
25 puts "Virhe: #{e.message}"
26end
27
1// Go Base64-koodaus/dekoodaus
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(base64String string) (string, error) {
14 bytes, err := base64.StdEncoding.DecodeString(base64String)
15 if err != nil {
16 return "", fmt.Errorf("virheellinen Base64-merkkijono: %v", err)
17 }
18 return string(bytes), nil
19}
20
21func main() {
22 originalText := "Hello, World!"
23 encoded := encodeToBase64(originalText)
24 fmt.Println("Koodattu:", encoded) // SGVsbG8sIFdvcmxkIQ==
25
26 decoded, err := decodeFromBase64(encoded)
27 if err != nil {
28 fmt.Println("Virhe:", err)
29 } else {
30 fmt.Println("Dekoodattu:", decoded) // Hello, World!
31 }
32}
33
1// Swift Base64-koodaus/dekoodaus
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// Esimerkin käyttö
19let originalText = "Hello, World!"
20if let encoded = encodeToBase64(originalText) {
21 print("Koodattu: \(encoded)") // SGVsbG8sIFdvcmxkIQ==
22
23 if let decoded = decodeFromBase64(encoded) {
24 print("Dekoodattu: \(decoded)") // Hello, World!
25 } else {
26 print("Virhe: Ei voitu dekoodata Base64-merkkijonoa")
27 }
28} else {
29 print("Virhe: Ei voitu koodata tekstiä")
30}
31
1' Excel VBA Base64-koodaus/dekoodaus
2' Huom: Tämä vaatii viittauksen 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 = "Virhe: Virheellinen Base64-merkkijono"
39End Function
40
41' Käyttö taulukossa:
42' =EncodeToBase64("Hello, World!")
43' =DecodeFromBase64("SGVsbG8sIFdvcmxkIQ==")
44
1# R Base64-koodaus/dekoodaus
2# Vaatii 'base64enc'-paketin
3# install.packages("base64enc")
4library(base64enc)
5
6encode_to_base64 <- function(text) {
7 # Muunna teksti raaoiksi tavuiksi, sitten koodaa
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 # Muunna base64-merkkijono raaoiksi, sitten dekoodaa
16 base64_raw <- charToRaw(base64_string)
17 decoded_raw <- base64decode(base64_raw)
18 return(rawToChar(decoded_raw))
19 }, error = function(e) {
20 stop(paste("Virheellinen Base64-merkkijono:", e$message))
21 })
22}
23
24# Esimerkin käyttö
25original_text <- "Hello, World!"
26encoded <- encode_to_base64(original_text)
27cat("Koodattu:", encoded, "\n") # SGVsbG8sIFdvcmxkIQ==
28
29tryCatch({
30 decoded <- decode_from_base64(encoded)
31 cat("Dekoodattu:", decoded, "\n") # Hello, World!
32}, error = function(e) {
33 cat("Virhe:", e$message, "\n")
34})
35
1% MATLAB Base64-koodaus/dekoodaus
2function demo_base64()
3 originalText = 'Hello, World!';
4
5 % Koodaa
6 encoded = encode_to_base64(originalText);
7 fprintf('Koodattu: %s\n', encoded); % SGVsbG8sIFdvcmxkIQ==
8
9 % Dekoodaa
10 try
11 decoded = decode_from_base64(encoded);
12 fprintf('Dekoodattu: %s\n', decoded); % Hello, World!
13 catch e
14 fprintf('Virhe: %s\n', e.message);
15 end
16end
17
18function encoded = encode_to_base64(text)
19 % Muunna teksti uint8-tauluksi ja koodaa
20 bytes = uint8(text);
21 encoded = base64encode(bytes);
22end
23
24function decoded = decode_from_base64(base64String)
25 try
26 % Dekoodaa base64-merkkijono uint8-tauluksi
27 bytes = base64decode(base64String);
28 decoded = char(bytes);
29 catch
30 error('Virheellinen Base64-merkkijono');
31 end
32end
33
1// C Base64-koodaus/dekoodaus käyttäen OpenSSL:ia
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; // Virheellinen Base64-syöte
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 = "Hello, World!";
58
59 char* encoded = encode_to_base64(original_text);
60 printf("Koodattu: %s\n", encoded); // SGVsbG8sIFdvcmxkIQ==
61
62 char* decoded = decode_from_base64(encoded);
63 if (decoded) {
64 printf("Dekoodattu: %s\n", decoded); // Hello, World!
65 free(decoded);
66 } else {
67 printf("Virhe: Virheellinen Base64-merkkijono\n");
68 }
69
70 free(encoded);
71
72 return 0;
73}
74
1// Rust Base64-koodaus/dekoodaus
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!("Virheellinen UTF-8-jakso: {}", e))
15 }
16 },
17 Err(e) => Err(format!("Virheellinen Base64-merkkijono: {}", e))
18 }
19}
20
21fn main() {
22 let original_text = "Hello, World!";
23 let encoded = encode_to_base64(original_text);
24 println!("Koodattu: {}", encoded); // SGVsbG8sIFdvcmxkIQ==
25
26 match decode_from_base64(&encoded) {
27 Ok(decoded) => println!("Dekoodattu: {}", decoded), // Hello, World!
28 Err(e) => println!("Virhe: {}", e)
29 }
30}
31
Rajatapaukset ja huomioitavaa
Kun työskentelet Base64-koodauksen ja dekoodauksen kanssa, ole tietoinen näistä tärkeistä seikoista:
-
Unicode ja ei-ASCII-merkit: Kun koodaat tekstiä, jossa on ei-ASCII-merkkejä, varmista oikea merkkikoodaus (yleensä UTF-8) ennen Base64-koodausta.
-
Täyte: Standardi Base64 käyttää täytettä "=" -merkkejä varmistaakseen, että tuloksen pituus on neljän moninkertainen. Jotkut toteutukset sallivat täytteen poistamisen, mikä voi aiheuttaa yhteensopivuusongelmia.
-
Rivinvaihdot: Perinteiset Base64-toteutukset lisäävät rivinvaihtoja (yleensä joka 76. merkki) luettavuutta varten, mutta nykyaikaiset sovellukset ohittavat usein nämä.
-
URL-turvallinen Base64: Standardi Base64 käyttää "+" ja "/" merkkejä, joilla on erityisiä merkityksiä URL-osoitteissa. URL-konteksteissa käytä URL-turvallista Base64:ää, joka korvasi nämä "-" ja "_".
-
Tyhjät merkit: Dekoodauksessa jotkut toteutukset ovat armollisia ja ohittavat tyhjät merkit, kun taas toiset vaativat tarkan syötteen.
-
Koon kasvu: Base64-koodaus lisää datan kokoa noin 33 % (4 tulosmerkkiä 3 syötemerkkiä kohti).
-
Suorituskyky: Base64-koodaus/dekoodaus voi olla laskennallisesti intensiivistä erittäin suurille tiedoille. Harkitse virtaavia lähestymistapoja suurille tiedostoille.
Viitteet
Liittyvät Työkalut
Löydä lisää työkaluja, jotka saattavat olla hyödyllisiä työnkulullesi