بیس64 انکوڈر اور ڈیکوڈر: متن کو بیس64 میں تبدیل کریں / بیس64 سے
متن کو بیس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 انکوڈر/ڈیکوڈر ٹول کا استعمال
ہمارا بیس64 ٹول آپ کو ٹیکسٹ کو بیس64 میں انکوڈ کرنے یا بیس64 کو واپس ٹیکسٹ میں ڈیکوڈ کرنے کا ایک سادہ اور موثر طریقہ فراہم کرتا ہے۔ اسے استعمال کرنے کا طریقہ یہ ہے:
بنیادی استعمال
- عمل کے موڈ کا انتخاب کریں: "انکوڈ" کو منتخب کریں تاکہ ٹیکسٹ کو بیس64 میں تبدیل کریں، یا "ڈیکوڈ" کو منتخب کریں تاکہ بیس64 کو واپس ٹیکسٹ میں تبدیل کریں۔
- اپنا ان پٹ درج کریں: ان پٹ فیلڈ میں اپنا ٹیکسٹ یا بیس64 سٹرنگ ٹائپ کریں یا پیسٹ کریں۔
- تبدیل کریں: "بیس64 میں انکوڈ کریں" یا "بیس64 سے ڈیکوڈ کریں" کے بٹن پر کلک کریں تاکہ تبدیلی کی جا سکے۔
- نتیجہ کو کاپی کریں: نتیجہ کو اپنے کلپ بورڈ میں کاپی کرنے کے لیے "کاپی" بٹن کا استعمال کریں۔
لائیو تبدیلی کی خصوصیت
ہمارے ٹول میں اب ایک حقیقی وقت کی تبدیلی کی خصوصیت شامل ہے جو آپ کے ٹائپ کرنے کے ساتھ ہی آؤٹ پٹ کو اپ ڈیٹ کرتی ہے:
- لائیو تبدیلی کو فعال کریں: ٹول کے اوپر "لائیو تبدیلی" چیک باکس کو چیک کریں۔
- فوری نتائج دیکھیں: جیسے ہی آپ ان پٹ فیلڈ میں ٹائپ کرتے ہیں، آؤٹ پٹ خودبخود اپ ڈیٹ ہوگا بغیر تبدیلی کے بٹن پر کلک کیے۔
- ضرورت کے مطابق ٹوگل کریں: آپ اپنی پسند کے مطابق کسی بھی وقت لائیو تبدیلی کو فعال یا غیر فعال کر سکتے ہیں۔
لائیو تبدیلی کی خصوصیت خاص طور پر مفید ہے جب:
- مختصر سے درمیانی لمبائی کے ٹیکسٹ یا بیس64 سٹرنگز کے ساتھ کام کر رہے ہوں
- بتدریج تبدیلیاں کر رہے ہوں اور فوری فیڈ بیک کی ضرورت ہو
- یہ جانچنے کے لیے کہ مختلف کرداروں کو کس طرح انکوڈ/ڈیکوڈ کیا جاتا ہے
- بیس64 انکوڈنگ کے پیٹرن کے بارے میں سیکھنا
بہت بڑے ان پٹس کے لیے، ٹول کارکردگی کو برقرار رکھنے کے لیے ڈی باؤنسنگ کا استعمال کرتا ہے، یہ یقینی بناتا ہے کہ تبدیلی صرف اس وقت ہوتی ہے جب آپ ٹائپ کرنا تھوڑی دیر کے لیے روک دیں، نہ کہ ہر کی اسٹروک پر۔
استعمال کے کیسز
بیس64 انکوڈنگ مختلف ایپلیکیشنز میں وسیع پیمانے پر استعمال ہوتی ہے:
-
ای میل اٹیچمنٹس: MIME (ملٹی پرپز انٹرنیٹ میل ایکسٹینشنز) بیس64 کو ای میل میں بائنری اٹیچمنٹس کو انکوڈ کرنے کے لیے استعمال کرتا ہے۔
-
ڈیٹا URLs: 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 ایک طاقت ہے (2^6)، جو بائنری اور بیس64 کے درمیان تبدیلی کو موثر بناتا ہے۔
وقت کے ساتھ، بیس64 کی کئی مختلف اقسام ابھری ہیں:
- معیاری بیس64: جیسا کہ RFC 4648 میں بیان کیا گیا ہے، جو A-Z، a-z، 0-9، +، / اور = کے ساتھ پیڈنگ کا استعمال کرتا ہے
- 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// پی ایچ پی بیس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// سی# بیس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(base64_string string) (string, error) {
14 bytes, err := base64.StdEncoding.DecodeString(base64_string)
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' ایکسل وی بی اے بیس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% میٹلیب بیس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 انکوڈنگ/ڈیکوڈنگ اوپن ایس ایل کے ساتھ
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
جاوا اسکرپٹ کی عمل درآمد کے ساتھ لائیو تبدیلی
یہاں ایک مثال ہے کہ آپ جاوا اسکرپٹ میں لائیو تبدیلی کی خصوصیت کو کیسے نافذ کر سکتے ہیں:
1// جاوا اسکرپٹ عمل درآمد کے ساتھ لائیو تبدیلی
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
کنارے کے معاملات اور غور و فکر
جب بیس64 انکوڈنگ اور ڈیکوڈنگ کے ساتھ کام کرتے ہیں تو ان اہم غور و فکر سے آگاہ رہیں:
-
یونیکوڈ اور غیر ASCII کردار: جب غیر ASCII کرداروں کے ساتھ ٹیکسٹ انکوڈ کرتے ہیں تو بیس64 انکوڈنگ سے پہلے مناسب کردار کی انکوڈنگ (عام طور پر UTF-8) کو یقینی بنائیں۔
-
پیڈنگ: معیاری بیس64 آؤٹ پٹ کی لمبائی کو 4 کے ضرب میں یقینی بنانے کے لیے "=" کرداروں کے ساتھ پیڈنگ کا استعمال کرتا ہے۔ کچھ عمل درآمد پیڈنگ کو چھوڑنے کی اجازت دیتے ہیں، جو مطابقت کے مسائل پیدا کر سکتی ہیں۔
-
لائن کی توڑ: روایتی بیس64 عمل درآمد پڑھنے کی قابلیت کے لیے لائن کی توڑیں داخل کرتے ہیں (عام طور پر ہر 76 کردار) لیکن جدید ایپلیکیشنز اکثر انہیں چھوڑ دیتی ہیں۔
-
URL محفوظ بیس64: معیاری بیس64 "+" اور "/" کرداروں کا استعمال کرتا ہے جن کا URLs میں خاص معنی ہوتا ہے۔ URL کے سیاق و سباق کے لیے، URL محفوظ بیس64 کا استعمال کریں جو ان کی جگہ "-" اور "_" لیتا ہے۔
-
خالی جگہ: ڈیکوڈنگ کے دوران، کچھ عمل درآمد نرم ہوتے ہیں اور خالی جگہوں کو نظر انداز کرتے ہیں، جبکہ دوسرے درست ان پٹ کی ضرورت ہوتی ہے۔
-
سائز میں اضافہ: بیس64 انکوڈنگ ڈیٹا کے سائز کو تقریباً 33% بڑھاتی ہے (3 ان پٹ بائٹس کے لیے 4 آؤٹ پٹ بائٹس)۔
-
کارکردگی: بیس64 انکوڈنگ/ڈیکوڈنگ بہت بڑے ڈیٹا کے لیے حسابی طور پر مہنگی ہو سکتی ہے۔ ہمارا ٹول فوری طور پر جوابدہی کو برقرار رکھنے کے لیے ڈی باؤنسنگ کا استعمال کرتا ہے یہاں تک کہ بڑے ان پٹس کے ساتھ۔
-
لائیو تبدیلی کے غور و فکر: جب آپ لائیو تبدیلی کی خصوصیت کے ساتھ بہت بڑے ان پٹس درج کرتے ہیں تو آپ کو تھوڑی سی تاخیر محسوس ہو سکتی ہے کیونکہ ٹول ڈیٹا کو پروسیس کرتا ہے۔ یہ معمول کی بات ہے اور براؤزر کی کارکردگی کو برقرار رکھنے میں مدد کرتا ہے۔
اکثر پوچھے گئے سوالات
لائیو تبدیلی کی خصوصیت کیا ہے؟
لائیو تبدیلی کی خصوصیت آپ کے ٹائپ کرنے کے ساتھ ہی آؤٹ پٹ کو خود بخود اپ ڈیٹ کرتی ہے، بغیر آپ کو انکوڈ یا ڈیکوڈ بٹن پر کلک کرنے کی ضرورت کے۔ یہ فوری فیڈ بیک فراہم کرتا ہے اور ٹول کو زیادہ تعامل اور موثر بناتا ہے۔
کیا لائیو تبدیلی بڑے ان پٹس کے ساتھ میرے براؤزر کو سست کر دے گی؟
ہمارا عمل درآمد کارکردگی کو برقرار رکھنے کے لیے ڈی باؤنسنگ کا استعمال کرتا ہے یہاں تک کہ بڑے ان پٹس کے ساتھ۔ تبدیلی صرف اس وقت ہوتی ہے جب آپ ٹائپ کرنا تھوڑی دیر کے لیے روک دیں، نہ کہ ہر کی اسٹروک پر۔
مجھے لائیو تبدیلی کب استعمال کرنی چاہیے بمقابلہ دستی تبدیلی؟
لائیو تبدیلی انٹرایکٹو کام کے لیے مثالی ہے جہاں آپ فوری فیڈ بیک چاہتے ہیں۔ بہت بڑے ڈیٹا سیٹ کے لیے یا جب آپ تبدیلی سے پہلے اپنے ان پٹ کا جائزہ لینا چاہتے ہیں تو آپ دستی تبدیلی کے آپشن کو ترجیح دے سکتے ہیں۔
کیا لائیو تبدیلی انکوڈنگ اور ڈیکوڈنگ دونوں کے لیے کام کرتی ہے؟
جی ہاں، لائیو تبدیلی کی خصوصیت دونوں سمتوں میں کام کرتی ہے - ٹیکسٹ سے بیس64 اور بیس64 سے ٹیکسٹ تک۔
اگر میں لائیو تبدیلی فعال ہونے پر غلط بیس64 درج کروں تو کیا ہوگا؟
اگر آپ ڈیکوڈ موڈ میں لائیو تبدیلی کے ساتھ غلط بیس64 کردار درج کرتے ہیں تو ٹول فوری طور پر ایک غلطی کا پیغام دکھائے گا، جس سے آپ کو مسئلہ کی نشاندہی اور درست کرنے میں مدد ملے گی۔
حوالہ جات
- RFC 4648 - بیس16، بیس32، اور بیس64 ڈیٹا انکوڈنگ
- RFC 2045 - MIME حصہ ایک: انٹرنیٹ میسج باڈیز کی شکل
- MDN ویب دستاویزات: بیس64 انکوڈنگ اور ڈیکوڈنگ
- بیس64 - ویکیپیڈیا
- MIME - ویکیپیڈیا
آج ہی ہمارے بیس64 انکوڈر/ڈیکوڈر ٹول کو آزمائیں تاکہ آپ ٹیکسٹ اور بیس64 فارمیٹس کے درمیان جلدی تبدیلی کر سکیں حقیقی وقت کی تبدیلی کی سہولت کے ساتھ۔ چاہے آپ ایک ڈویلپر ہوں جو APIs کے ساتھ کام کر رہا ہو، ای میل اٹیچمنٹس کو ہینڈل کر رہا ہو، یا ٹیکسٹ فارمیٹس میں بائنری ڈیٹا کو شامل کر رہا ہو، ہمارا ٹول اس عمل کو آسان اور موثر بناتا ہے۔
متعلقہ اوزار
آپ کے ورک فلو کے لیے مفید ہونے والے مزید ٹولز کا انعام کریں