બેસ64 એન્કોડર અને ડિકોડર: લખાણને બેસ64માં/થી રૂપાંતરિત કરો
લખાણને બેસ64માં એન્કોડ કરવા અથવા બેસ64 સ્ટ્રિંગને પાછા લખાણમાં ડિકોડ કરવા માટેની મફત ઓનલાઈન ટૂલ. તુરંત રૂપાંતરણ સાથે માનક અને URL-સુરક્ષિત બેસ64 એન્કોડિંગને સપોર્ટ કરે છે.
બેસ64 એન્કોડર/ડિકોડર
ટેક્સ્ટને બેસ64 એન્કોડિંગમાં અને બેસ64માંથી રૂપાંતરિત કરો
દસ્તાવેજીકરણ
બેસ64 એન્કોડર અને ડિકોડર
પરિચય
બેસ64 એ બાયનરી-ટુ-ટેક્સ્ટ એન્કોડિંગ સ્કીમ છે જે બાયનરી ડેટાને ASCII સ્ટ્રિંગ ફોર્મેટમાં રજૂ કરે છે. તે બાયનરી ફોર્મેટમાં સંગ્રહિત ડેટાને ટેક્સ્ટ સામગ્રીને વિશ્વસનીય રીતે સપોર્ટ કરનારા ચેનલ્સમાં વહન કરવા માટે ડિઝાઇન કરવામાં આવ્યું છે. બેસ64 એન્કોડિંગ બાયનરી ડેટાને 64 અક્ષરોના સેટમાં રૂપાંતરિત કરે છે (આથી નામ) જેને ટેક્સ્ટ આધારિત પ્રોટોકોલ્સ દ્વારા સલામત રીતે પ્રસારિત કરી શકાય છે જે ડેટા વિક્ષેપ વિના.
બેસ64 અક્ષર સેટમાં સમાવેશ થાય છે:
- મોટા અક્ષરો A-Z (26 અક્ષરો)
- નાના અક્ષરો a-z (26 અક્ષરો)
- અંક 0-9 (10 અક્ષરો)
- બે વધારાના અક્ષરો, સામાન્ય રીતે "+" અને "/" (2 અક્ષરો)
આ સાધન તમને સરળતાથી ટેક્સ્ટને બેસ64 ફોર્મેટમાં એન્કોડ અથવા બેસ64 સ્ટ્રિંગને તેમની મૂળ ટેક્સ્ટમાં ડિકોડ કરવાની મંજૂરી આપે છે. તે વિકાસકર્તાઓ, IT વ્યાવસાયિકો અને કોઈપણ માટે ખાસ ઉપયોગી છે જે ડેટા સાથે કામ કરે છે જે ટેક્સ્ટ આધારિત ચેનલ્સમાં સલામત રીતે પ્રસારિત થવું જોઈએ.
બેસ64 એન્કોડિંગ કેવી રીતે કાર્ય કરે છે
એન્કોડિંગ પ્રક્રિયા
બેસ64 એન્કોડિંગ બાયનરી ડેટાના દરેક ત્રણ બાઇટ (24 બિટ)ના જૂથને ચાર બેસ64 અક્ષરોમાં રૂપાંતરિત કરીને કાર્ય કરે છે. પ્રક્રિયા આ પગલાંઓનું પાલન કરે છે:
- ઇનપુટ ટેક્સ્ટને તેના બાયનરી પ્રતિનિધિત્વમાં રૂપાંતરિત કરો (ASCII અથવા UTF-8 એન્કોડિંગનો ઉપયોગ કરીને)
- બાયનરી ડેટાને 24 બિટના જૂથોમાં ગોઠવો (3 બાઇટ)
- દરેક 24-બિટના જૂથને ચાર 6-બિટના જૂથોમાં વિભાજિત કરો
- દરેક 6-બિટના જૂથને તેના અનુરૂપ બેસ64 અક્ષરમાં રૂપાંતરિત કરો
જ્યારે ઇનપુટની લંબાઈ 3 દ્વારા વિભાજ્ય નથી, ત્યારે 4:3 ની આઉટપુટથી ઇનપુટની લંબાઈ જાળવવા માટે "=" અક્ષરો સાથે પેડિંગ કરવામાં આવે છે.
ગણિતીય પ્રતિનિધિત્વ
બાઇટ્સના એક શ્રેણી માટે, અનુરૂપ બેસ64 અક્ષરો ની ગણતરી આ રીતે કરવામાં આવે છે:
જ્યાં બેસ64 અક્ષરમાળા માં -મું અક્ષર દર્શાવે છે.
ડિકોડિંગ પ્રક્રિયા
બેસ64 ડિકોડિંગ એન્કોડિંગ પ્રક્રિયાને વળતર આપે છે:
- દરેક બેસ64 અક્ષરને તેના 6-બિટ મૂલ્યમાં રૂપાંતરિત કરો
- આ 6-બિટ મૂલ્યોને જોડો
- બિટ્સને 8-બિટના જૂથોમાં (બાઇટ્સ) ગોઠવો
- દરેક બાઇટને તેના અનુરૂપ અક્ષરમાં રૂપાંતરિત કરો
પેડિંગ
જ્યારે એન્કોડ કરવા માટે બાઇટ્સની સંખ્યા 3 દ્વારા વિભાજ્ય નથી, ત્યારે પેડિંગ લાગુ કરવામાં આવે છે:
- જો એક બાઇટ બાકી હોય, તો તેને બે બેસ64 અક્ષરોમાં રૂપાંતરિત કરવામાં આવે છે અને "==" દ્વારા અનુસરણ કરવામાં આવે છે
- જો બે બાઇટ્સ બાકી હોય, તો તેને ત્રણ બેસ64 અક્ષરોમાં રૂપાંતરિત કરવામાં આવે છે અને "=" દ્વારા અનુસરણ કરવામાં આવે છે
ઉદાહરણ
ચાલો "Hello" ટેક્સ્ટને બેસ64 માં એન્કોડ કરીએ:
- "Hello" નું ASCII પ્રતિનિધિત્વ: 72 101 108 108 111
- બાયનરી પ્રતિનિધિત્વ: 01001000 01100101 01101100 01101100 01101111
- 6-બિટના જૂથોમાં ગોઠવવું: 010010 000110 010101 101100 011011 000110 1111
- છેલ્લી જૂથમાં ફક્ત 4 બિટ છે, તેથી અમે શૂન્ય સાથે પેડિંગ કરીએ છીએ: 010010 000110 010101 101100 011011 000110 111100
- દશમલવમાં રૂપાંતરિત કરવું: 18, 6, 21, 44, 27, 6, 60
- બેસ64 અક્ષરમાળામાં જોવા: S, G, V, s, b, G, 8
- પરિણામ છે "SGVsbG8="
ધ્યાન આપો "=" પેડિંગ અંતે છે કારણ કે ઇનપુટની લંબાઈ (5 બાઇટ) 3 દ્વારા વિભાજ્ય નથી.
સૂત્ર
બેસ64 એન્કોડેડ સ્ટ્રિંગની લંબાઈની ગણતરી માટેનો સામાન્ય સૂત્ર છે:
જ્યાં છત કાર્ય (નજીકના પૂર્ણાંકમાં રાઉન્ડિંગ) દર્શાવે છે.
ઉપયોગ કેસ
બેસ64 એન્કોડિંગ વિવિધ એપ્લિકેશન્સમાં વ્યાપકપણે ઉપયોગમાં લેવાય છે:
-
ઇમેઇલ સંલગ્નકો: MIME (મલ્ટીપર્પઝ ઇન્ટરનેટ મેઇલ એક્સટેંશન્સ) બેસ64 નો ઉપયોગ ઇમેઇલમાં બાયનરી સંલગ્નકોને એન્કોડ કરવા માટે કરે છે.
-
ડેટા URL: HTML, CSS, અથવા JavaScript માં નાના છબીઓ, ફૉન્ટ્સ, અથવા અન્ય સંસાધનોને સીધા એમ્બેડ કરવું
data:
URL સ્કીમનો ઉપયોગ કરીને. -
API સંચાર: JSON પેઢાઓ અથવા અન્ય ટેક્સ્ટ આધારિત API ફોર્મેટમાં બાયનરી ડેટાને સલામત રીતે પ્રસારિત કરવું.
-
ટેક્સ્ટ ફોર્મેટમાં બાયનરી ડેટા સંગ્રહિત કરવું: જ્યારે બાયનરી ડેટાને XML, JSON, અથવા અન્ય ટેક્સ્ટ આધારિત ફોર્મેટમાં સંગ્રહિત કરવાની જરૂર હોય.
-
પ્રમાણીકરણ સિસ્ટમો: HTTP માં બેસ64 એન્કોડિંગનો ઉપયોગ બેસિક પ્રમાણીકરણ માટે થાય છે (જ્યાં તે સુરક્ષાના માટે નથી, ફક્ત એન્કોડિંગ માટે છે).
-
ક્રિપ્ટોગ્રાફી: વિવિધ ક્રિપ્ટોગ્રાફિક પ્રોટોકોલ અને સિસ્ટમોમાં, ઘણી વખત કી અથવા પ્રમાણપત્રોને એન્કોડ કરવા માટે.
-
કૂકી મૂલ્યો: કૂકીમાં સંગ્રહિત કરવા માટે જટિલ ડેટા રચનાઓને એન્કોડ કરવું.
વિકલ્પો
જ્યારે બેસ64 વ્યાપકપણે ઉપયોગમાં લેવાય છે, ત્યારે કેટલાક સંજોગોમાં વધુ યોગ્ય વિકલ્પો હોઈ શકે છે:
-
URL-સુરક્ષિત બેસ64: એક રૂપાંતર જે "+" અને "/" ને "-" અને "_" દ્વારા બદલે છે જેથી URL એન્કોડિંગની સમસ્યાઓ ટાળી શકાય. તે ડેટા માટે ઉપયોગી છે જે URLs માં સામેલ થશે.
-
બેસ32: 32-અક્ષરોના સેટનો ઉપયોગ કરે છે, જે વધુ લાંબો આઉટપુટ આપે છે પરંતુ વધુ માનવ વાંચનક્ષમ અને કેસ અવિશ્વસનીય છે.
-
હેક્સ એન્કોડિંગ: હેક્સાડેસિમલમાં સરળ રૂપાંતર, જે ઓછા અસરકારક છે (આકારને દોઢગણી કરે છે) પરંતુ ખૂબ જ સરળ અને વ્યાપક રીતે સપોર્ટેડ છે.
-
બાયનરી ટ્રાન્સફર: મોટા ફાઇલો અથવા જ્યારે કાર્યક્ષમતા મહત્વપૂર્ણ હોય ત્યારે, સીધી બાયનરી ટ્રાન્સફર પ્રોટોકોલ્સ જેમ કે HTTP યોગ્ય સામગ્રી પ્રકારના હેડરો સાથે વધુ યોગ્ય છે.
-
કમ્પ્રેશન + બેસ64: મોટા ટેક્સ્ટ ડેટા માટે, એન્કોડિંગ કરતા પહેલા સંકોચન કરવું કદ વધારાને ઘટાડવા માટે મદદરૂપ થઈ શકે છે.
-
JSON/XML સિરિયલાઇઝેશન: રચનાબદ્ધ ડેટા માટે, બેસ64 એન્કોડિંગ કરતાં મૂળ JSON અથવા XML સિરિયલાઇઝેશન વધુ યોગ્ય હોઈ શકે છે.
ઇતિહાસ
બેસ64 એન્કોડિંગની મૂળભૂત મૂળભૂત કમ્પ્યુટિંગ અને ટેલિકમ્યુનિકેશન સિસ્ટમોમાં છે જ્યાં બાયનરી ડેટાને ટેક્સ્ટ માટે ડિઝાઇન કરેલ ચેનલ્સ દ્વારા પ્રસારિત કરવાની જરૂર હતી.
બેસ64 ની ઔપચારિક સ્પષ્ટીકરણ પ્રથમ 1987 માં RFC 989 તરીકે પ્રકાશિત કરવામાં આવી, જે પ્રાઇવસી એન્હાન્સ્ડ મેઇલ (PEM) ને વ્યાખ્યાયિત કરે છે. આને પછી RFC 1421 (1993) અને RFC 2045 (1996, MIME ના ભાગરૂપે) માં અપડેટ કરવામાં આવ્યું.
"બેસ64" શબ્દનો ઉલ્લેખ આથી થાય છે કે એન્કોડિંગ 64 અલગ ASCII અક્ષરોનો ઉપયોગ કરે છે જે બાયનરી ડેટાને રજૂ કરે છે. આ 64 અક્ષરોની પસંદગી જાગૃત હતી, કારણ કે 64 2 નો શક્તિ છે (2^6), જે બાયનરી અને બેસ64 વચ્ચે રૂપાંતરિત કરવાનું કાર્યક્ષમ બનાવે છે.
સમય સાથે, બેસ64 ના અનેક રૂપો ઉભા થયા છે:
- પ્રમાણભૂત બેસ64: RFC 4648 માં વ્યાખ્યાયિત, A-Z, a-z, 0-9, +, / અને = પેડિંગનો ઉપયોગ કરે છે
- URL-સુરક્ષિત બેસ64: "+" અને "/" ને "-" અને "_" દ્વારા બદલે છે જેથી URL એન્કોડિંગની સમસ્યાઓ ટાળી શકાય
- ફાઇલ નામ-સુરક્ષિત બેસ64: URL-સુરક્ષિત જેવું, ફાઇલ નામોમાં ઉપયોગ માટે ડિઝાઇન કરવામાં આવ્યું
- IMAP માટે ફેરફાર કરેલ બેસ64: IMAP પ્રોટોકોલમાં ઉપયોગમાં લેવાય છે જેમાં વિશેષ અક્ષરોનો અલગ સેટ છે
ત્રણ દાયકાઓથી વધુ સમયગાળાના હોવા છતાં, બેસ64 આધુનિક કમ્પ્યુટિંગમાં એક મૂળભૂત સાધન છે, ખાસ કરીને વેબ એપ્લિકેશન્સ અને APIs ની ઉછાળ સાથે જે ટેક્સ્ટ આધારિત ડેટા ફોર્મેટ્સ જેમ કે JSON પર ખૂબ જ આધારિત છે.
કોડ ઉદાહરણો
અહીં વિવિધ પ્રોગ્રામિંગ ભાષાઓમાં બેસ64 એન્કોડિંગ અને ડિકોડિંગના ઉદાહરણો છે:
1// જાવાસ્ક્રિપ્ટ બેસ64 એન્કોડિંગ/ડિકોડિંગ
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("અમાન્ય બેસ64 સ્ટ્રિંગ");
11 }
12}
13
14// ઉદાહરણ ઉપયોગ
15const originalText = "Hello, World!";
16const encoded = encodeToBase64(originalText);
17console.log("એન્કોડેડ:", encoded); // SGVsbG8sIFdvcmxkIQ==
18
19try {
20 const decoded = decodeFromBase64(encoded);
21 console.log("ડિકોડેડ:", decoded); // Hello, World!
22} catch (error) {
23 console.error(error.message);
24}
25
1# પાયથન બેસ64 એન્કોડિંગ/ડિકોડિંગ
2import base64
3
4def encode_to_base64(text):
5 # સ્ટ્રિંગને બાઇટ્સમાં રૂપાંતરિત કરો અને પછી એન્કોડ કરો
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 # બેસ64 સ્ટ્રિંગને બાઇટ્સમાં રૂપાંતરિત કરો અને પછી ડિકોડ કરો
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"અમાન્ય બેસ64 સ્ટ્રિંગ: {e}")
18
19# ઉદાહરણ ઉપયોગ
20original_text = "Hello, World!"
21encoded = encode_to_base64(original_text)
22print(f"એન્કોડેડ: {encoded}") # SGVsbG8sIFdvcmxkIQ==
23
24try:
25 decoded = decode_from_base64(encoded)
26 print(f"ડિકોડેડ: {decoded}") # Hello, World!
27except ValueError as e:
28 print(e)
29
1// જાવા બેસ64 એન્કોડિંગ/ડિકોડિંગ
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("અમાન્ય બેસ64 સ્ટ્રિંગ: " + 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("એન્કોડેડ: " + encoded); // SGVsbG8sIFdvcmxkIQ==
26
27 try {
28 String decoded = decodeFromBase64(encoded);
29 System.out.println("ડિકોડેડ: " + decoded); // Hello, World!
30 } catch (IllegalArgumentException e) {
31 System.err.println(e.getMessage());
32 }
33 }
34}
35
1<?php
2// PHP બેસ64 એન્કોડિંગ/ડિકોડિંગ
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("અમાન્ય બેસ64 સ્ટ્રિંગ");
11 }
12 return $decoded;
13}
14
15// ઉદાહરણ ઉપયોગ
16$originalText = "Hello, World!";
17$encoded = encodeToBase64($originalText);
18echo "એન્કોડેડ: " . $encoded . "\n"; // SGVsbG8sIFdvcmxkIQ==
19
20try {
21 $decoded = decodeFromBase64($encoded);
22 echo "ડિકોડેડ: " . $decoded . "\n"; // Hello, World!
23} catch (Exception $e) {
24 echo "કટોકટી: " . $e->getMessage() . "\n";
25}
26?>
27
1// C# બેસ64 એન્કોડિંગ/ડિકોડિંગ
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("અમાન્ય બેસ64 સ્ટ્રિંગ");
23 }
24 }
25
26 static void Main()
27 {
28 string originalText = "Hello, World!";
29 string encoded = EncodeToBase64(originalText);
30 Console.WriteLine($"એન્કોડેડ: {encoded}"); // SGVsbG8sIFdvcmxkIQ==
31
32 try
33 {
34 string decoded = DecodeFromBase64(encoded);
35 Console.WriteLine($"ડિકોડેડ: {decoded}"); // Hello, World!
36 }
37 catch (FormatException e)
38 {
39 Console.WriteLine($"કટોકટી: {e.Message}");
40 }
41 }
42}
43
1# રૂબી બેસ64 એન્કોડિંગ/ડિકોડિંગ
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 "અમાન્ય બેસ64 સ્ટ્રિંગ: #{e.message}"
13 end
14end
15
16# ઉદાહરણ ઉપયોગ
17original_text = "Hello, World!"
18encoded = encode_to_base64(original_text)
19puts "એન્કોડેડ: #{encoded}" # SGVsbG8sIFdvcmxkIQ==
20
21begin
22 decoded = decode_from_base64(encoded)
23 puts "ડિકોડેડ: #{decoded}" # Hello, World!
24rescue StandardError => e
25 puts "કટોકટી: #{e.message}"
26end
27
1// ગો બેસ64 એન્કોડિંગ/ડિકોડિંગ
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("અમાન્ય બેસ64 સ્ટ્રિંગ: %v", err)
17 }
18 return string(bytes), nil
19}
20
21func main() {
22 originalText := "Hello, World!"
23 encoded := encodeToBase64(originalText)
24 fmt.Println("એન્કોડેડ:", encoded) // SGVsbG8sIFdvcmxkIQ==
25
26 decoded, err := decodeFromBase64(encoded)
27 if err != nil {
28 fmt.Println("કટોકટી:", err)
29 } else {
30 fmt.Println("ડિકોડેડ:", decoded) // Hello, World!
31 }
32}
33
1// સ્વિફ્ટ બેસ64 એન્કોડિંગ/ડિકોડિંગ
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// ઉદાહરણ ઉપયોગ
19let originalText = "Hello, World!"
20if let encoded = encodeToBase64(originalText) {
21 print("એન્કોડેડ: \(encoded)") // SGVsbG8sIFdvcmxkIQ==
22
23 if let decoded = decodeFromBase64(encoded) {
24 print("ડિકોડેડ: \(decoded)") // Hello, World!
25 } else {
26 print("કટોકટી: બેસ64 સ્ટ્રિંગને ડિકોડ કરવામાં નિષ્ફળ")
27 }
28} else {
29 print("કટોકટી: ટેક્સ્ટને એન્કોડ કરવામાં નિષ્ફળ")
30}
31
1' એક્સેલ VBA બેસ64 એન્કોડિંગ/ડિકોડિંગ
2' નોંધ: આ માટે 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 = "કટોકટી: અમાન્ય બેસ64 સ્ટ્રિંગ"
39End Function
40
41' વર્કશીટમાં ઉપયોગ:
42' =EncodeToBase64("Hello, World!")
43' =DecodeFromBase64("SGVsbG8sIFdvcmxkIQ==")
44
1# આર બેસ64 એન્કોડિંગ/ડિકોડિંગ
2# 'base64enc' પેકેજની જરૂર છે
3# install.packages("base64enc")
4library(base64enc)
5
6encode_to_base64 <- function(text) {
7 # ટેક્સ્ટને કાચા બાઇટ્સમાં રૂપાંતરિત કરો, પછી એન્કોડ કરો
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 # બેસ64 સ્ટ્રિંગને કાચા બાઇટ્સમાં રૂપાંતરિત કરો, પછી ડિકોડ કરો
16 base64_raw <- charToRaw(base64_string)
17 decoded_raw <- base64decode(base64_raw)
18 return(rawToChar(decoded_raw))
19 }, error = function(e) {
20 stop(paste("અમાન્ય બેસ64 સ્ટ્રિંગ:", e$message))
21 })
22}
23
24# ઉદાહરણ ઉપયોગ
25original_text <- "Hello, World!"
26encoded <- encode_to_base64(original_text)
27cat("એન્કોડેડ:", encoded, "\n") # SGVsbG8sIFdvcmxkIQ==
28
29tryCatch({
30 decoded <- decode_from_base64(encoded)
31 cat("ડિકોડેડ:", decoded, "\n") # Hello, World!
32}, error = function(e) {
33 cat("કટોકટી:", e$message, "\n")
34})
35
1% MATLAB બેસ64 એન્કોડિંગ/ડિકોડિંગ
2function demo_base64()
3 originalText = 'Hello, World!';
4
5 % એન્કોડ
6 encoded = encode_to_base64(originalText);
7 fprintf('એન્કોડેડ: %s\n', encoded); % SGVsbG8sIFdvcmxkIQ==
8
9 % ડિકોડ
10 try
11 decoded = decode_from_base64(encoded);
12 fprintf('ડિકોડેડ: %s\n', decoded); % Hello, World!
13 catch e
14 fprintf('કટોકટી: %s\n', e.message);
15 end
16end
17
18function encoded = encode_to_base64(text)
19 % ટેક્સ્ટને uint8 એરેમાં રૂપાંતરિત કરો અને એન્કોડ કરો
20 bytes = uint8(text);
21 encoded = base64encode(bytes);
22end
23
24function decoded = decode_from_base64(base64String)
25 try
26 % બેસ64 સ્ટ્રિંગને uint8 એરેમાં ડિકોડ કરો
27 bytes = base64decode(base64String);
28 decoded = char(bytes);
29 catch
30 error('અમાન્ય બેસ64 સ્ટ્રિંગ');
31 end
32end
33
1// C બેસ64 એન્કોડિંગ/ડિકોડિંગ OpenSSL નો ઉપયોગ કરીને
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; // અમાન્ય બેસ64 ઇનપુટ
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("એન્કોડેડ: %s\n", encoded); // SGVsbG8sIFdvcmxkIQ==
61
62 char* decoded = decode_from_base64(encoded);
63 if (decoded) {
64 printf("ડિકોડેડ: %s\n", decoded); // Hello, World!
65 free(decoded);
66 } else {
67 printf("કટોકટી: અમાન્ય બેસ64 સ્ટ્રિંગ\n");
68 }
69
70 free(encoded);
71
72 return 0;
73}
74
1// રૂસ્ટ બેસ64 એન્કોડિંગ/ડિકોડિંગ
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!("અમાન્ય UTF-8 અનુક્રમ: {}", e))
15 }
16 },
17 Err(e) => Err(format!("અમાન્ય બેસ64 સ્ટ્રિંગ: {}", e))
18 }
19}
20
21fn main() {
22 let original_text = "Hello, World!";
23 let encoded = encode_to_base64(original_text);
24 println!("એન્કોડેડ: {}", encoded); // SGVsbG8sIFdvcmxkIQ==
25
26 match decode_from_base64(&encoded) {
27 Ok(decoded) => println!("ડિકોડેડ: {}", decoded), // Hello, World!
28 Err(e) => println!("કટોકટી: {}", e)
29 }
30}
31
કિનારો અને વિચારણા
બેસ64 એન્કોડિંગ અને ડિકોડિંગ સાથે કામ કરતી વખતે, આ મહત્વપૂર્ણ વિચારણાઓને ધ્યાનમાં રાખો:
-
યૂનિકોડ અને ગેર-ASCII અક્ષરો: જ્યારે નોન-ASCII અક્ષરો સાથે ટેક્સ્ટને એન્કોડ કરો, ત્યારે બેસ64 એન્કોડિંગ પહેલાં યોગ્ય અક્ષર એન્કોડિંગ (સામાન્ય રીતે UTF-8) સુનિશ્ચિત કરો.
-
પેડિંગ: પ્રમાણભૂત બેસ64 "=" અક્ષરો સાથે પેડિંગનો ઉપયોગ કરે છે જેથી આઉટપુટની લંબાઈ 4 ના ગુણાકારમાં રહે. કેટલીક અમલવારી પેડિંગને છોડી દે છે, જે સુસંગતતા સમસ્યાઓનું કારણ બની શકે છે.
-
લાઇન બ્રેક: પરંપરાગત બેસ64 અમલવારી વાંચનક્ષમતા માટે લાઇન બ્રેક દાખલ કરે છે (સામાન્ય રીતે 76 અક્ષરોમાં), પરંતુ આધુનિક એપ્લિકેશન્સ ઘણીવાર આને છોડી દે છે.
-
URL-સુરક્ષિત બેસ64: પ્રમાણભૂત બેસ64 "+" અને "/" અક્ષરોનો ઉપયોગ કરે છે જે URLs માં વિશેષ અર્થ ધરાવે છે. URL સંદર્ભોમાં, URL-સુરક્ષિત બેસ64 નો ઉપયોગ કરો જે આને "-" અને "_" દ્વારા બદલે છે.
-
ખાલી જગ્યા: ડિકોડિંગ વખતે, કેટલીક અમલવારી દયાળુ છે અને ખાલી જગ્યાને અવગણે છે, જ્યારે અન્ય ચોક્કસ ઇનપુટની જરૂર હોય છે.
-
આકારમાં વધારો: બેસ64 એન્કોડિંગ ડેટાના કદમાં લગભગ 33% નો વધારો કરે છે (3 ઇનપુટ બાઇટ્સ માટે 4 આઉટપુટ બાઇટ્સ).
-
કાર્યક્ષમતા: ખૂબ મોટા ડેટા માટે બેસ64 એન્કોડિંગ/ડિકોડિંગ ગણનાત્મક રીતે ભારે હોઈ શકે છે. મોટા ફાઇલો માટે સ્ટ્રીમિંગ અભિગમો પર વિચાર કરો.
સંદર્ભો
પ્રતિસાદ
આ ટૂલ વિશે પ્રતિસાદ આપવા માટે પ્રતિસાદ ટોસ્ટ પર ક્લિક કરો
સંબંધિત ટૂલ્સ
તમારા કાર્યપ્રવાહ માટે ઉપયોગી હોઈ શકે એવા વધુ ટૂલ્સ શોધો