बेस64 एन्कोडर और डिकोडर: टेक्स्ट को बेस64 में/से परिवर्तित करें
बेस64 में टेक्स्ट को एन्कोड करने या बेस64 स्ट्रिंग्स को टेक्स्ट में वापस डिकोड करने के लिए मुफ्त ऑनलाइन उपकरण। त्वरित रूपांतरण के साथ मानक और यूआरएल-सुरक्षित बेस64 एन्कोडिंग का समर्थन करता है।
बेस64 एन्कोडर/डिकोडर
दस्तावेज़ीकरण
Base64 एन्कोडर और डिकोडर
परिचय
Base64 एक बाइनरी-से-टेक्स्ट एन्कोडिंग योजना है जो बाइनरी डेटा को ASCII स्ट्रिंग प्रारूप में दर्शाती है। इसे उन चैनलों के माध्यम से डेटा ले जाने के लिए डिज़ाइन किया गया है जो केवल विश्वसनीय रूप से टेक्स्ट सामग्री का समर्थन करते हैं। Base64 एन्कोडिंग बाइनरी डेटा को 64 वर्णों के सेट में परिवर्तित करती है (इसलिए नाम) जो टेक्स्ट-आधारित प्रोटोकॉल के माध्यम से सुरक्षित रूप से प्रसारित किया जा सकता है बिना डेटा भ्रष्टाचार के।
Base64 वर्ण सेट में शामिल हैं:
- बड़े अक्षर A-Z (26 वर्ण)
- छोटे अक्षर a-z (26 वर्ण)
- अंक 0-9 (10 वर्ण)
- दो अतिरिक्त वर्ण, आमतौर पर "+" और "/" (2 वर्ण)
यह उपकरण आपको आसानी से टेक्स्ट को Base64 प्रारूप में एन्कोड करने या Base64 स्ट्रिंग को उनके मूल टेक्स्ट में वापस डिकोड करने की अनुमति देता है। यह विशेष रूप से डेवलपर्स, आईटी पेशेवरों और किसी भी व्यक्ति के लिए उपयोगी है जो डेटा के साथ काम कर रहा है जिसे टेक्स्ट-आधारित चैनलों के माध्यम से सुरक्षित रूप से प्रसारित करने की आवश्यकता है। हमारे रीयल-टाइम रूपांतरण सुविधा के साथ, आप टाइप करते समय तुरंत परिणाम देख सकते हैं, जिससे आपका एन्कोडिंग और डिकोडिंग कार्यप्रवाह अधिक कुशल हो जाता है।
Base64 एन्कोडिंग कैसे काम करता है
एन्कोडिंग प्रक्रिया
Base64 एन्कोडिंग बाइनरी डेटा के प्रत्येक तीन बाइट (24 बिट) के समूह को चार Base64 वर्णों में परिवर्तित करके काम करती है। प्रक्रिया निम्नलिखित चरणों का पालन करती है:
- इनपुट टेक्स्ट को इसके बाइनरी प्रतिनिधित्व में परिवर्तित करें (ASCII या UTF-8 एन्कोडिंग का उपयोग करके)
- बाइनरी डेटा को 24 बिट (3 बाइट) के समूहों में समूहित करें
- प्रत्येक 24-बिट समूह को चार 6-बिट समूहों में विभाजित करें
- प्रत्येक 6-बिट समूह को इसके संबंधित Base64 वर्ण में परिवर्तित करें
जब इनपुट की लंबाई 3 से विभाज्य नहीं होती है, तो 4:3 अनुपात को बनाए रखने के लिए "=" वर्णों के साथ पैडिंग जोड़ी जाती है।
गणितीय प्रतिनिधित्व
बाइट्स के अनुक्रम के लिए, संबंधित Base64 वर्ण की गणना इस प्रकार की जाती है:
जहां Base64 वर्णमाला में -वां वर्ण का प्रतिनिधित्व करता है।
डिकोडिंग प्रक्रिया
Base64 डिकोडिंग एन्कोडिंग प्रक्रिया को उलट देती है:
- प्रत्येक Base64 वर्ण को इसके 6-बिट मान में परिवर्तित करें
- इन 6-बिट मानों को जोड़ें
- बिट्स को 8-बिट समूहों (बाइट्स) में समूहित करें
- प्रत्येक बाइट को इसके संबंधित वर्ण में परिवर्तित करें
पैडिंग
जब एन्कोड करने के लिए बाइट्स की संख्या 3 से विभाज्य नहीं होती है, तो पैडिंग लागू की जाती है:
- यदि एक बाइट शेष है, तो इसे दो Base64 वर्णों में परिवर्तित किया जाता है और "==" के साथ समाप्त किया जाता है
- यदि दो बाइट्स शेष हैं, तो उन्हें तीन Base64 वर्णों में परिवर्तित किया जाता है और "=" के साथ समाप्त किया जाता है
उदाहरण
आइए टेक्स्ट "Hello" को Base64 में एन्कोड करें:
- "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
- Base64 वर्णमाला में देखने पर: S, G, V, s, b, G, 8
- परिणाम "SGVsbG8=" है
ध्यान दें कि "=" पैडिंग अंत में है क्योंकि इनपुट की लंबाई (5 बाइट) 3 से विभाज्य नहीं है।
सूत्र
Base64 एन्कोडेड स्ट्रिंग की लंबाई की गणना करने का सामान्य सूत्र है:
जहां छत फ़ंक्शन (नजदीकी पूर्णांक में ऊपर गोल करना) का प्रतिनिधित्व करता है।
Base64 एन्कोडर/डिकोडर उपकरण का उपयोग करना
हमारा Base64 उपकरण टेक्स्ट को Base64 में एन्कोड करने या Base64 को टेक्स्ट में वापस डिकोड करने का एक सरल और प्रभावी तरीका प्रदान करता है। इसका उपयोग कैसे करें:
बुनियादी उपयोग
- ऑपरेशन मोड चुनें: टेक्स्ट को Base64 में परिवर्तित करने के लिए "एन्कोड" चुनें, या Base64 को टेक्स्ट में वापस परिवर्तित करने के लिए "डिकोड" चुनें।
- अपना इनपुट दर्ज करें: इनपुट फ़ील्ड में अपना टेक्स्ट या Base64 स्ट्रिंग टाइप या पेस्ट करें।
- परिवर्तित करें: "Base64 में एन्कोड करें" या "Base64 से डिकोड करें" बटन पर क्लिक करके रूपांतरण करें।
- परिणाम कॉपी करें: परिणाम को अपने क्लिपबोर्ड में कॉपी करने के लिए "कॉपी" बटन का उपयोग करें।
लाइव रूपांतरण सुविधा
हमारा उपकरण अब एक रीयल-टाइम रूपांतरण विकल्प प्रदान करता है जो टाइप करते समय आउटपुट को अद्यतन करता है:
- लाइव रूपांतरण सक्षम करें: उपकरण के शीर्ष पर "लाइव रूपांतरण" चेकबॉक्स को चेक करें।
- तत्काल परिणाम देखें: जैसे ही आप इनपुट फ़ील्ड में टाइप करते हैं, आउटपुट स्वचालित रूप से बिना रूपांतरण बटन पर क्लिक किए अद्यतन होगा।
- आवश्यकतानुसार टॉगल करें: आप अपनी प्राथमिकता के आधार पर किसी भी समय लाइव रूपांतरण को सक्षम या अक्षम कर सकते हैं।
लाइव रूपांतरण सुविधा विशेष रूप से उपयोगी है जब:
- छोटे से मध्यम लंबाई के टेक्स्ट या Base64 स्ट्रिंग के साथ काम करना
- धीरे-धीरे परिवर्तनों को करना और तात्कालिक फीडबैक की आवश्यकता होना
- विभिन्न वर्णों के एन्कोडेड/डिकोडेड होने के पैटर्न का पता लगाना
- Base64 एन्कोडिंग पैटर्न के बारे में सीखना
बहुत बड़े इनपुट के लिए, उपकरण प्रदर्शन बनाए रखने के लिए डिबाउंसिंग का उपयोग करता है, यह सुनिश्चित करते हुए कि रूपांतरण केवल तब होता है जब आप टाइप करना थोड़ी देर के लिए रोकते हैं, न कि हर कीस्ट्रोक पर।
उपयोग के मामले
Base64 एन्कोडिंग विभिन्न अनुप्रयोगों में व्यापक रूप से उपयोग की जाती है:
-
ईमेल अटैचमेंट: MIME (मल्टीपर्पज इंटरनेट मेल एक्सटेंशन) बाइनरी अटैचमेंट को ईमेल में एन्कोड करने के लिए Base64 का उपयोग करता है।
-
डेटा यूआरएल: HTML, CSS या JavaScript में सीधे छोटे चित्रों, फ़ॉन्ट्स, या अन्य संसाधनों को एम्बेड करना
data:
यूआरएल स्कीम का उपयोग करके। -
API संचार: JSON पेलोड या अन्य टेक्स्ट-आधारित API प्रारूपों में बाइनरी डेटा को सुरक्षित रूप से प्रसारित करना।
-
टेक्स्ट प्रारूपों में बाइनरी डेटा संग्रहीत करना: जब बाइनरी डेटा XML, JSON, या अन्य टेक्स्ट-आधारित प्रारूपों में संग्रहीत करने की आवश्यकता होती है।
-
प्रमाणीकरण प्रणाली: HTTP में बेसिक प्रमाणीकरण Base64 एन्कोडिंग का उपयोग करता है (हालांकि यह सुरक्षा के लिए नहीं है, केवल एन्कोडिंग के लिए)।
-
क्रिप्टोग्राफी: विभिन्न क्रिप्टोग्राफिक प्रोटोकॉल और सिस्टम का हिस्सा, अक्सर कुंजी या प्रमाणपत्रों को एन्कोड करने के लिए।
-
कुकी मान: कुकीज़ में संग्रहीत करने के लिए जटिल डेटा संरचनाओं को एन्कोड करना।
विकल्प
हालांकि Base64 व्यापक रूप से उपयोग किया जाता है, कुछ स्थितियों में अधिक उपयुक्त विकल्प हो सकते हैं:
-
यूआरएल-सुरक्षित Base64: एक भिन्नता जो "+" और "/" के बजाय "-" और "_" का उपयोग करती है ताकि यूआरएल एन्कोडिंग समस्याओं से बचा जा सके। यह डेटा के लिए उपयोगी है जिसे यूआरएल में शामिल किया जाएगा।
-
Base32: 32-वर्ण सेट का उपयोग करता है, जिससे आउटपुट लंबा होता है लेकिन मानव पठनीयता और केस असंवेदनशीलता में बेहतर होता है।
-
हेक्स एन्कोडिंग: हेक्साडेसिमल में सरल रूपांतरण, जो कम कुशल है (आकार को दोगुना करता है) लेकिन बहुत सरल और व्यापक रूप से समर्थित है।
-
बाइनरी ट्रांसफर: बड़े फ़ाइलों के लिए या जब दक्षता महत्वपूर्ण हो, उचित सामग्री प्रकार हेडर के साथ HTTP जैसे सीधे बाइनरी ट्रांसफर प्रोटोकॉल प्राथमिकता के लिए बेहतर होते हैं।
-
संपीड़न + Base64: बड़े टेक्स्ट डेटा के लिए, एन्कोडिंग से पहले संपीड़न आकार वृद्धि को कम कर सकता है।
-
JSON/XML सीरियलाइजेशन: संरचित डेटा के लिए, Base64 एन्कोडिंग की तुलना में मूल JSON या XML सीरियलाइजेशन का उपयोग करना अधिक उपयुक्त हो सकता है।
इतिहास
Base64 एन्कोडिंग की जड़ें प्रारंभिक कंप्यूटिंग और दूरसंचार प्रणालियों में हैं जहां बाइनरी डेटा को टेक्स्ट के लिए डिज़ाइन किए गए चैनलों के माध्यम से प्रसारित करने की आवश्यकता थी।
Base64 का औपचारिक विनिर्देशन पहली बार 1987 में RFC 989 के हिस्से के रूप में प्रकाशित किया गया था, जिसने प्राइवेसी एनहांस्ड मेल (PEM) को परिभाषित किया। इसे बाद में RFC 1421 (1993) और RFC 2045 (1996, MIME के हिस्से के रूप में) में अपडेट किया गया।
"Base64" शब्द इस तथ्य से आता है कि एन्कोडिंग बाइनरी डेटा का प्रतिनिधित्व करने के लिए 64 विभिन्न ASCII वर्णों का उपयोग करती है। इन 64 वर्णों का चयन जानबूझकर किया गया था, क्योंकि 64 एक शक्ति है (2^6), जो बाइनरी और Base64 के बीच रूपांतरण को कुशल बनाता है।
समय के साथ, Base64 के कई भिन्नताएँ उभरी हैं:
- मानक Base64: RFC 4648 में परिभाषित, A-Z, a-z, 0-9, +, / और = पैडिंग के लिए उपयोग किया जाता है
- यूआरएल-सुरक्षित Base64: "-" और "_" का उपयोग करता है "+" और "/" के बजाय यूआरएल एन्कोडिंग समस्याओं से बचने के लिए
- फाइलनाम-सुरक्षित Base64: यूआरएल-सुरक्षित के समान, फ़ाइल नामों में उपयोग के लिए डिज़ाइन किया गया
- IMAP के लिए संशोधित Base64: IMAP प्रोटोकॉल में विशेष वर्णों के एक अलग सेट के साथ उपयोग किया जाता है
तीन दशकों से अधिक समय के बावजूद, Base64 आधुनिक कंप्यूटिंग में एक मौलिक उपकरण बना हुआ है, विशेष रूप से वेब अनुप्रयोगों और एपीआई के उदय के साथ जो टेक्स्ट-आधारित डेटा प्रारूपों जैसे JSON पर बहुत अधिक निर्भर करते हैं।
कोड उदाहरण
यहां विभिन्न प्रोग्रामिंग भाषाओं में Base64 एन्कोडिंग और डिकोडिंग के उदाहरण दिए गए हैं:
1// JavaScript Base64 एन्कोडिंग/डिकोडिंग
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("अमान्य Base64 स्ट्रिंग");
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# Python Base64 एन्कोडिंग/डिकोडिंग
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 # Base64 स्ट्रिंग को बाइट्स में परिवर्तित करें और फिर डिकोड करें
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"अमान्य Base64 स्ट्रिंग: {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// Java Base64 एन्कोडिंग/डिकोडिंग
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("अमान्य Base64 स्ट्रिंग: " + 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 Base64 एन्कोडिंग/डिकोडिंग
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("अमान्य Base64 स्ट्रिंग");
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# Base64 एन्कोडिंग/डिकोडिंग
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("अमान्य Base64 स्ट्रिंग");
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# Ruby Base64 एन्कोडिंग/डिकोडिंग
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 "अमान्य Base64 स्ट्रिंग: #{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// Go Base64 एन्कोडिंग/डिकोडिंग
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("अमान्य Base64 स्ट्रिंग: %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// Swift Base64 एन्कोडिंग/डिकोडिंग
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("त्रुटि: Base64 स्ट्रिंग को डिकोड नहीं कर सके")
27 }
28} else {
29 print("त्रुटि: टेक्स्ट को एन्कोड नहीं कर सके")
30}
31
1' Excel VBA Base64 एन्कोडिंग/डिकोडिंग
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 = "त्रुटि: अमान्य Base64 स्ट्रिंग"
39End Function
40
41' वर्कशीट में उपयोग:
42' =EncodeToBase64("Hello, World!")
43' =DecodeFromBase64("SGVsbG8sIFdvcmxkIQ==")
44
1# R Base64 एन्कोडिंग/डिकोडिंग
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 # Base64 स्ट्रिंग को कच्चे बाइट्स में परिवर्तित करें, फिर डिकोड करें
16 base64_raw <- charToRaw(base64_string)
17 decoded_raw <- base64decode(base64_raw)
18 return(rawToChar(decoded_raw))
19 }, error = function(e) {
20 stop(paste("अमान्य Base64 स्ट्रिंग:", 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 Base64 एन्कोडिंग/डिकोडिंग
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 % Base64 स्ट्रिंग को uint8 एरे में डिकोड करें
27 bytes = base64decode(base64String);
28 decoded = char(bytes);
29 catch
30 error('अमान्य Base64 स्ट्रिंग');
31 end
32end
33
1// C Base64 एन्कोडिंग/डिकोडिंग 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; // अमान्य Base64 इनपुट
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("त्रुटि: अमान्य Base64 स्ट्रिंग\n");
68 }
69
70 free(encoded);
71
72 return 0;
73}
74
1// Rust Base64 एन्कोडिंग/डिकोडिंग
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!("अमान्य Base64 स्ट्रिंग: {}", 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
JavaScript कार्यान्वयन लाइव रूपांतरण के साथ
यहां JavaScript में लाइव रूपांतरण सुविधा को लागू करने का एक उदाहरण है:
1// JavaScript कार्यान्वयन लाइव रूपांतरण के साथ
2const textInput = document.getElementById('text-input');
3const base64Output = document.getElementById('base64-output');
4const liveConversionCheckbox = document.getElementById('live-conversion');
5let debounceTimeout = null;
6
7// प्रदर्शन के लिए डिबाउंसिंग के साथ एन्कोड करने का कार्य
8function liveEncode() {
9 // किसी भी मौजूदा टाइमआउट को साफ करें
10 if (debounceTimeout) {
11 clearTimeout(debounceTimeout);
12 }
13
14 // अत्यधिक टाइपिंग के दौरान अधिक प्रसंस्करण से बचने के लिए एक नया टाइमआउट सेट करें
15 debounceTimeout = setTimeout(() => {
16 try {
17 const text = textInput.value;
18 if (text.trim()) {
19 base64Output.value = btoa(text);
20 } else {
21 base64Output.value = '';
22 }
23 } catch (e) {
24 console.error('एन्कोडिंग त्रुटि:', e);
25 // UI में त्रुटि को उचित रूप से संभालें
26 }
27 }, 300); // 300ms डिबाउंस देरी
28}
29
30// इवेंट लिस्नर्स
31liveConversionCheckbox.addEventListener('change', function() {
32 if (this.checked) {
33 // लाइव रूपांतरण सक्षम करें
34 textInput.addEventListener('input', liveEncode);
35 // प्रारंभिक एन्कोड करें
36 liveEncode();
37 } else {
38 // लाइव रूपांतरण अक्षम करें
39 textInput.removeEventListener('input', liveEncode);
40 }
41});
42
किनारे के मामले और विचार
Base64 एन्कोडिंग और डिकोडिंग के साथ काम करते समय, इन महत्वपूर्ण विचारों से अवगत रहें:
-
यूनिकोड और गैर-ASCII वर्ण: गैर-ASCII वर्णों के साथ टेक्स्ट को एन्कोड करते समय, Base64 एन्कोडिंग से पहले उचित वर्ण एन्कोडिंग (आमतौर पर UTF-8) सुनिश्चित करें।
-
पैडिंग: मानक Base64 आउटपुट लंबाई को 4 के गुणांक में सुनिश्चित करने के लिए "=" वर्णों के साथ पैडिंग का उपयोग करता है। कुछ कार्यान्वयन पैडिंग को छोड़ने की अनुमति देते हैं, जो संगतता समस्याओं का कारण बन सकता है।
-
लाइन ब्रेक: पारंपरिक Base64 कार्यान्वयन पठनीयता के लिए लाइन ब्रेक डालते हैं (आमतौर पर हर 76 वर्ण), लेकिन आधुनिक अनुप्रयोग अक्सर इन्हें छोड़ देते हैं।
-
यूआरएल-सुरक्षित Base64: मानक Base64 "+" और "/" वर्णों का उपयोग करता है जिनका यूआरएल में विशेष अर्थ होता है। यूआरएल संदर्भों के लिए, यूआरएल-सुरक्षित Base64 का उपयोग करें जो इन्हें "-" और "_" से बदलता है।
-
Whitespace: डिकोड करते समय, कुछ कार्यान्वयन उदार होते हैं और व्हाइटस्पेस की अनदेखी करते हैं, जबकि अन्य सटीक इनपुट की आवश्यकता होती है।
-
आकार वृद्धि: Base64 एन्कोडिंग डेटा के आकार को लगभग 33% बढ़ा देती है (3 इनपुट बाइट्स के लिए 4 आउटपुट बाइट्स)।
-
प्रदर्शन: बहुत बड़े डेटा के लिए Base64 एन्कोडिंग/डिकोडिंग संसाधन-गहन हो सकती है। हमारा उपकरण प्रतिक्रिया बनाए रखने के लिए डिबाउंसिंग का उपयोग करता है, यह सुनिश्चित करते हुए कि रूपांतरण केवल तब होता है जब आप टाइप करना थोड़ी देर के लिए रोकते हैं।
-
लाइव रूपांतरण विचार: जब लाइव रूपांतरण सुविधा के साथ बहुत बड़े इनपुट होते हैं, तो आप देख सकते हैं कि उपकरण डेटा को संसाधित करते समय थोड़ी देरी हो सकती है। यह सामान्य है और ब्राउज़र के प्रदर्शन को बनाए रखने में मदद करता है।
अक्सर पूछे जाने वाले प्रश्न
लाइव रूपांतरण सुविधा क्या है?
लाइव रूपांतरण सुविधा स्वचालित रूप से आउटपुट को अद्यतन करती है जैसे ही आप टाइप करते हैं, बिना एन्कोड या डिकोड बटन पर क्लिक किए। यह तात्कालिक फीडबैक प्रदान करता है और उपकरण को अधिक इंटरैक्टिव और उपयोग करने में कुशल बनाता है।
क्या लाइव रूपांतरण बड़े इनपुट के साथ मेरे ब्राउज़र को धीमा कर देगा?
हमारा कार्यान्वयन डिबाउंसिंग का उपयोग करता है ताकि प्रदर्शन को बनाए रखा जा सके, यहां तक कि बड़े इनपुट के साथ। रूपांतरण केवल तब होता है जब आप टाइप करना थोड़ी देर के लिए रोकते हैं, न कि हर कीस्ट्रोक पर, जो अत्यधिक प्रसंस्करण से बचाता है।
मुझे लाइव रूपांतरण का उपयोग कब करना चाहिए बनाम मैनुअल रूपांतरण?
लाइव रूपांतरण उन इंटरैक्टिव कार्यों के लिए आदर्श है जहां आप तात्कालिक फीडबैक चाहते हैं। बहुत बड़े डेटा सेट के लिए या जब आप रूपांतरण से पहले अपने इनपुट की समीक्षा करना चाहते हैं, तो आप मैनुअल रूपांतरण विकल्प को प्राथमिकता दे सकते हैं।
क्या लाइव रूपांतरण एन्कोडिंग और डिकोडिंग दोनों के लिए काम करता है?
हाँ, लाइव रूपांतरण सुविधा दोनों दिशाओं में काम करती है - टेक्स्ट से Base64 और Base64 से टेक्स्ट।
यदि मैं लाइव रूपांतरण सक्षम करते समय अमान्य Base64 इनपुट करता हूं तो क्या होगा?
यदि आप डिकोड मोड में लाइव रूपांतरण के साथ अमान्य Base64 वर्ण इनपुट करते हैं, तो उपकरण तुरंत एक त्रुटि संदेश प्रदर्शित करेगा, जिससे आपको समस्या की पहचान और सुधार करने में मदद मिलेगी।
संदर्भ
- RFC 4648 - The Base16, Base32, and Base64 Data Encodings
- RFC 2045 - MIME Part One: Format of Internet Message Bodies
- MDN Web Docs: Base64 encoding and decoding
- Base64 - Wikipedia
- MIME - Wikipedia
आज ही हमारे Base64 एन्कोडर/डिकोडर उपकरण का प्रयास करें ताकि आप टेक्स्ट और Base64 प्रारूपों के बीच जल्दी से रूपांतरित कर सकें, रीयल-टाइम रूपांतरण की सुविधा के साथ। चाहे आप एपीआई के साथ काम करने वाले डेवलपर हों, ईमेल अटैचमेंट को संभाल रहे हों, या टेक्स्ट प्रारूपों में बाइनरी डेटा को एम्बेड कर रहे हों, हमारा उपकरण प्रक्रिया को सरल और प्रभावी बनाता है।
संबंधित उपकरण
अपने वर्कफ़्लो के लिए उपयोगी हो सकने वाले और अधिक उपकरण खोजें।