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
Palaute
Napsauta palautetoimintoa aloittaaksesi palautteen antamisen tästä työkalusta
Liittyvät työkalut
Löydä lisää työkaluja, jotka voivat olla hyödyllisiä työnkulussasi