فك تشفير Base64

فك تشفير سلاسل Base64 المشفرة إلى النص أو البيانات الأصلية.

0 حرف

ما هو فك تشفير Base64؟

فك تشفير Base64 هو العملية العكسية لترميز Base64. يحول نص ASCII المشفر بـ Base64 إلى تنسيقه الثنائي أو النصي الأصلي. تساعدك أداة فك التشفير هذه على فك تشفير سلاسل Base64 بسرعة دون أي معرفة بالبرمجة.

الاستخدامات الشائعة لفك تشفير Base64

  • فحص رموز JWT: تتكون رموز الويب JSON (JWT) من ثلاثة أقسام مشفرة بـ Base64URL مفصولة بنقاط: header.payload.signature. يكشف فك تشفير الرأس عن نوع الرمز وخوارزمية التوقيع (HS256، RS256، إلخ). يكشف فك تشفير الحمولة عن المطالبات مثل معرف المستخدم (sub)، ووقت انتهاء الصلاحية (exp)، والمُصدر (iss)، والبيانات المخصصة. هذا لا يقدر بثمن لتصحيح مشكلات المصادقة، والتحقق من محتويات الرمز أثناء التطوير، وفهم المعلومات التي يخزنها تطبيقك في الرموز.
  • معالجة استجابات API: تُرجع العديد من واجهات برمجة تطبيقات REST البيانات الثنائية (الصور، ملفات PDF، الحمولات المشفرة) كسلاسل Base64 داخل استجابات JSON. نظرًا لأن JSON هو تنسيق نصي، يجب ترميز البيانات الثنائية. عند استهلاك هذه واجهات برمجة التطبيقات، تحتاج إلى فك تشفير سلسلة Base64 للحصول على الملف أو البيانات الفعلية. تشمل الأمثلة واجهات برمجة تطبيقات توليد الصور، وخدمات تحويل المستندات، ونقاط نهاية نقل البيانات المشفرة.
  • استخراج محتوى URI البيانات: تضمن عناوين URI للبيانات في HTML/CSS (مثل، data:image/png;base64,iVBORw0KG...) الملفات مباشرة في الكود باستخدام Base64. لاستخراج الملف الفعلي من URI بيانات، تفك تشفير جزء Base64. هذا مفيد عند كشط صفحات الويب، أو تحليل رسائل HTML البريدية، أو تحويل الصور المضمنة مرة أخرى إلى ملفات مستقلة للتحسين أو التعديل.
  • فك تشفير مرفقات البريد الإلكتروني: تستخدم رسائل البريد الإلكتروني المشفرة بـ MIME Base64 للمرفقات. تفك عملاء البريد الإلكتروني تشفير هذه تلقائيًا، ولكن إذا كنت تكتب نصوص معالجة البريد الإلكتروني، أو تبني عميل بريد إلكتروني مخصصًا، أو تحلل كود مصدر البريد الإلكتروني الخام (عرض ملفات .eml)، فستحتاج إلى فك تشفير أقسام Base64 يدويًا للوصول إلى ملفات المرفقات الفعلية.
seo.base64_decode.heading_how

seo.base64_decode.how_desc

  • seo.base64_decode.how_step1
  • seo.base64_decode.how_step2
  • seo.base64_decode.how_step3
  • seo.base64_decode.how_step4

seo.base64_decode.how_example

فهم عملية فك التشفير

يعكس فك تشفير Base64 التحويل الرياضي الذي يؤديه الترميز. بينما يحول الترميز كل 3 بايتات إلى 4 أحرف، يأخذ فك التشفير كل 4 أحرف Base64 ويحولها مرة أخرى إلى 3 بايتات. يفسر فك التشفير كل حرف وفقًا لأبجدية Base64 (A-Z = 0-25، a-z = 26-51، 0-9 = 52-61، + = 62، / = 63)، ويحولها إلى قيم 6 بت، ويربطها في كتل 24 بت، ويقسمها مرة أخرى إلى البايتات الأصلية 8 بت. تشير أحرف الحشو (=) إلى أن طول البيانات الأصلية لم يكن مضاعفًا لـ 3، مما يسمح لفك التشفير بقطع الإخراج بشكل صحيح.

اعتبارات الأمان عند فك التشفير

فك تشفير Base64 قابل للعكس ولا يوفر أي أمان. يمكن لأي شخص فك تشفير سلاسل Base64. تعامل مع المحتوى المفكك كغير موثوق به ما لم يتم التحقق منه. تعرف على أمان الترميز

فك تشفير Base64 في لغات البرمجة

توفر معظم لغات البرمجة وظائف مدمجة لفك تشفير Base64. إليك أمثلة مع معالجة الأخطاء المناسبة:

// فك التشفير الأساسي
$decoded = base64_decode($encoded);

// فك التشفير مع الوضع الصارم (يتحقق من صحة الإدخال)
$decoded = base64_decode($encoded, true);
if ($decoded === false) {
    // سلسلة Base64 غير صالحة
    throw new Exception("Invalid Base64");
}

// فك التشفير إلى سلسلة UTF-8
$text = base64_decode($encoded, true);
if (!mb_check_encoding($text, 'UTF-8')) {
    // ليست UTF-8 صالحة
}
// المتصفح (atob لـ ASCII فقط)
try {
    const decoded = atob(encoded);
} catch (e) {
    console.error("Invalid Base64:", e);
}

// المتصفح مع دعم UTF-8
function base64Decode(str) {
    try {
        return decodeURIComponent(escape(atob(str)));
    } catch (e) {
        throw new Error("Invalid Base64 or UTF-8");
    }
}
import base64

# فك التشفير إلى بايتات
try:
    decoded_bytes = base64.b64decode(encoded)
    decoded_text = decoded_bytes.decode('utf-8')
except Exception as e:
    print(f"Decoding failed: {e}")

# التحقق من صحة Base64 قبل فك التشفير
try:
    decoded = base64.b64decode(encoded, validate=True)
except base64.binascii.Error:
    print("Invalid Base64 string")
import (
    "encoding/base64"
    "fmt"
)

// فك تشفير Base64 القياسي
decoded, err := base64.StdEncoding.DecodeString(encoded)
if err != nil {
    fmt.Println("Decoding error:", err)
    return
}

// فك تشفير Base64 الآمن لعناوين URL (لـ JWT)
decoded, err := base64.URLEncoding.DecodeString(encoded)
if err != nil {
    fmt.Println("Decoding error:", err)
}
import java.util.Base64;
import java.nio.charset.StandardCharsets;

// فك التشفير الأساسي
try {
    byte[] decodedBytes = Base64.getDecoder().decode(encoded);
    String decoded = new String(decodedBytes, StandardCharsets.UTF_8);
} catch (IllegalArgumentException e) {
    System.err.println("Invalid Base64: " + e.getMessage());
}

// فك التشفير الآمن لعناوين URL
byte[] decoded = Base64.getUrlDecoder().decode(encoded);
require 'base64'

# فك التشفير الأساسي
begin
  decoded = Base64.decode64(encoded)
rescue ArgumentError => e
  puts "Invalid Base64: #{e.message}"
end

# فك التشفير الصارم (يتحقق من صحة الإدخال)
decoded = Base64.strict_decode64(encoded)

# فك التشفير الآمن لعناوين URL
decoded = Base64.urlsafe_decode64(encoded)
using System;
using System.Text;

// فك التشفير الأساسي
try
{
    byte[] bytes = Convert.FromBase64String(encoded);
    string decoded = Encoding.UTF8.GetString(bytes);
}
catch (FormatException ex)
{
    Console.WriteLine($"Invalid Base64: {ex.Message}");
}

الأدوات ذات الصلة

هل تحتاج إلى ترميز البيانات إلى Base64؟ استخدم مشفر Base64 لتحويل النص أو البيانات الثنائية إلى تنسيق Base64.

فك تشفير رموز JWT؟ يفك فك تشفير JWT الخاص بنا تلقائيًا جميع الأقسام الثلاثة ويعرض المطالبات بتنسيق قابل للقراءة.

تعمل مع بيانات مشفرة بـ URL؟ جرب فك تشفير URL لفك تشفير السلاسل المشفرة بالنسبة المئوية.