محوّل Base64 إلى Hex

التحويل بين Base64 والنظام الست عشري

Base64

Hex

يعمل محليًا · آمن للصق الأسرار
ستظهر النتيجة هنا…
Base64 → Hex

ما هو تحويل Base64 إلى Hex؟

يحوّل تحويل Base64 إلى hex البيانات بين مخططَين شائعَين لترميز البيانات الثنائية نصيًا. يمثّل Base64 البيانات الثنائية باستخدام 64 حرفًا من ASCII (A-Z وa-z و0-9 و+ و/)، مرمِّزًا كل 3 بايتات كـ 4 أحرف. أما النظام الست عشري (hex) فيمثّل كل بايت بحرفين تحديدًا من أبجدية مكوّنة من 16 رمزًا (0-9 وa-f). التحويل بين هذين التنسيقين عملية من خطوتين: فك ترميز سلسلة Base64 إلى بايتاتها الخام، ثم إعادة ترميز تلك البايتات بالتنسيق المطلوب.

يُعدّ النظام الست عشري التمثيل المعياري للبيانات الثنائية في البرمجة منخفضة المستوى والتشفير وبروتوكولات الشبكة. يُعيَّن كل حرف hex مباشرةً إلى نصف بايت (nibble) من 4 بتات، مما يُسهّل قراءة قيم البايتات الفردية. فتجزئة SHA-256 مثلًا تُعرض دائمًا تقريبًا كسلسلة hex مكوّنة من 64 حرفًا. أما Base64 فمُحسَّن للإيجاز — التجزئة ذاتها لا تحتاج سوى 44 حرفًا في Base64 — وهو الترميز المعياري لمرفقات البريد الإلكتروني (MIME) وعناوين data URIs وحمولات API.

كلا الترميزين محدَّدان في RFC 4648. التحويل بينهما بلا خسائر: لا تُضاف بيانات ولا تُحذف، بل يتغيّر التمثيل النصي فحسب. هذا يجعل تحويل Base64 إلى hex عملية اعتيادية عند تصحيح حمولات مشفَّرة أو فحص بصمات الشهادات أو التحقق من مخرجات التجزئة عبر أنظمة تستخدم تنسيقات عرض مختلفة.

لماذا تستخدم محوّل Base64 إلى Hex هذا؟

تُجري هذه الأداة التحويل بين Base64 والنظام الست عشري مباشرةً في متصفحك. لا تغادر بياناتك جهازك، ويتم التحويل فوريًا أثناء الكتابة.

تحويل فوري
الصق Base64 أو hex وشاهد النتيجة فورًا — دون إرسال أي طلب إلى خادم. يتيح لك الوضع ثنائي الاتجاه التبديل بنقرة واحدة.
🔒
معالجة خاصة أولًا
يعمل التحويل بالكامل محليًا في متصفحك باستخدام JavaScript. مفاتيحك التشفيرية وتجزئاتك وتوكناتك لا تُرسَل أبدًا عبر الشبكة.
وضع ثنائي الاتجاه
بدِّل بين Base64-إلى-hex وhex-إلى-Base64 بزر واحد. تكتشف الأداة متغيرَي Base64 القياسي والآمن للـ URL وتتعامل معهما.
📋
مخرجات نظيفة جاهزة للنسخ
المخرج هو hex بأحرف صغيرة بلا محدِّدات أو بادئات — الصيغة التي تتوقعها معظم واجهات API وCLIs ولغات البرمجة. انسخه بنقرة واحدة.

حالات استخدام محوّل Base64 إلى Hex

مطوّر واجهة أمامية
حوِّل استجابات API المُرمَّزة بـ Base64 إلى hex عند تصحيح بروتوكولات ثنائية أو إطارات WebSocket أو محتويات ArrayBuffer في وحدة تحكم DevTools بالمتصفح.
مهندس خلفي
ترجم ملخّصات تجزئة Base64 من توقيعات JWT أو استجابات HMAC إلى hex لمقارنتها بقيم مخزّنة في OpenSSL أو قواعد البيانات التي تستخدم تمثيل hex.
مهندس DevOps / SRE
تحقق من بصمات شهادات TLS بتحويل المفتاح العام بتنسيق Base64 من ملفات PEM إلى صيغة بصمة hex التي تعرضها المتصفحات وأدوات المراقبة.
محلل أمني
افحص مفاتيح التشفير وعوامل التهيئة (IVs) التي تصل بصيغة Base64 في حركة مرور API — حوِّلها إلى hex للتحليل على مستوى البايت في Wireshark أو CyberChef.
مهندس بيانات
حوِّل أعمدة ثنائية مُرمَّزة بـ Base64 من قواعد البيانات (PostgreSQL bytea وMongoDB BinData) إلى hex للمقارنة أو التسجيل أو نصوص الترحيل.
طالب / متعلم
افهم العلاقة بين Base64 والنظام الست عشري من خلال رؤية كيفية تمثيل البايتات ذاتها في كل تنسيق، مما يعزّز أسس الترميز.

Base64 مقابل ترميز النظام الست عشري

يحوّل كل من Base64 والنظام الست عشري البيانات الثنائية إلى نص قابل للطباعة، لكنهما يقدّمان مقايضات مختلفة بين الإيجاز وسهولة القراءة. يلخّص الجدول أدناه الفروق الرئيسية.

الخاصيةBase64Hexadecimal
الأبجديةA-Z a-z 0-9 + / =0-9 a-f
بتات لكل حرف64
زيادة الحجمأكبر بـ ~33% من الخامأكبر بـ 100% من الخام
سهولة القراءةمضغوط لكن غير واضحكل بايت مرئي كحرفين
الاستخدام الأساسيالبريد الإلكتروني وdata URIs وAPIsتجزئات التشفير وعناوين MAC والألوان
المواصفةRFC 4648IEEE 754, RFC 4648 sec 8

أمثلة على التحويل

يعرض الجدول أدناه تسلسلات بايتات متطابقة بتمثيلَي Base64 والنظام الست عشري. لاحظ أن مخرج hex يساوي دائمًا ضعف عدد البايتات تمامًا، بينما طول Base64 يساوي ceil(byteCount / 3) * 4.

المدخل (نص / بايتات)Base64Hex
HelloSGVsbG8=48656c6c6f
ABQUI=4142
0xFFMHhGRg==30784646
AAE=0001
key=vala2V5PXZhbA==6b65793d76616c
Þ­¾ï (bytes)3q2+7w==deadbeef

كيف يعمل التحويل

تحويل Base64 إلى نظام سداسي عشري عملية ثنائية المرحلة. أولًا، تُفكَّك سلسلة Base64 إلى بايتات خام بتعيين كل حرف إلى قيمته ذات 6 بتات، ثم دمج البتات وتقسيمها إلى بايتات من 8 بتات (مع إهمال الحشو). هذه الخطوة تعكس الترميز المحدَّد في RFC 4648 القسم 4.

ثانيًا، يُحوَّل كل بايت إلى تمثيله الست عشري المكوّن من رقمين. قيم البايت من 0 إلى 255 تُعيَّن إلى 00-ff. بايت كـ 0x4F (عشري 79) يُصبح الحرفَين '4' و'f'. سلسلة hex الكاملة هي مجرد تسلسل جميع الأزواج ذات الحرفين. الاتجاه العكسي (hex إلى Base64) يطبّق هذه الخطوات بترتيب معكوس: تحليل أزواج hex إلى بايتات، ثم ترميز النتيجة بـ Base64.

ثنائي 4 بتاترقم Hex
00000
00011
00102
00113
01004
01015
01106
01117
10008
10019
1010a
1011b
1100c
1101d
1110e
1111f

أمثلة برمجية

تُوضّح هذه المقاطع القابلة للتشغيل كيفية التحويل بين Base64 وhex في JavaScript وPython وGo وسطر الأوامر. يغطّي كل مثال كلا اتجاهَي التحويل.

JavaScript (browser / Node.js)
// Base64 to Hex
function base64ToHex(b64) {
  const raw = atob(b64)
  return Array.from(raw, c =>
    c.charCodeAt(0).toString(16).padStart(2, '0')
  ).join('')
}
base64ToHex('SGVsbG8=') // → "48656c6c6f"

// Hex to Base64
function hexToBase64(hex) {
  const bytes = hex.match(/.{1,2}/g).map(b => parseInt(b, 16))
  return btoa(String.fromCharCode(...bytes))
}
hexToBase64('48656c6c6f') // → "SGVsbG8="

// Node.js Buffer shorthand
Buffer.from('SGVsbG8=', 'base64').toString('hex')   // → "48656c6c6f"
Buffer.from('48656c6c6f', 'hex').toString('base64')  // → "SGVsbG8="
Python
import base64, binascii

# Base64 to Hex
b64_str = 'SGVsbG8='
raw_bytes = base64.b64decode(b64_str)
hex_str = raw_bytes.hex()            # → '48656c6c6f'
# or: binascii.hexlify(raw_bytes).decode()

# Hex to Base64
hex_str = '48656c6c6f'
raw_bytes = bytes.fromhex(hex_str)
b64_str = base64.b64encode(raw_bytes).decode()  # → 'SGVsbG8='

# One-liner for quick conversion
base64.b64encode(bytes.fromhex('deadbeef')).decode()  # → '3q2+7w=='
Go
package main

import (
    "encoding/base64"
    "encoding/hex"
    "fmt"
)

func main() {
    // Base64 to Hex
    raw, _ := base64.StdEncoding.DecodeString("SGVsbG8=")
    hexStr := hex.EncodeToString(raw)
    fmt.Println(hexStr) // → "48656c6c6f"

    // Hex to Base64
    raw2, _ := hex.DecodeString("48656c6c6f")
    b64Str := base64.StdEncoding.EncodeToString(raw2)
    fmt.Println(b64Str) // → "SGVsbG8="
}
CLI (bash)
# Base64 to Hex (using base64 + xxd)
echo -n 'SGVsbG8=' | base64 -d | xxd -p
# → 48656c6c6f

# Hex to Base64
echo -n '48656c6c6f' | xxd -r -p | base64
# → SGVsbG8=

# OpenSSL alternative
echo -n 'SGVsbG8=' | openssl base64 -d | xxd -p
# → 48656c6c6f

الأسئلة الشائعة

ما الفرق بين Base64 والنظام الست عشري؟
يستخدم Base64 64 حرفًا ويرمّز 6 بتات لكل حرف، مما يُفضي إلى زيادة في الحجم بحوالي 33% مقارنةً بالبايتات الخام. أما النظام الست عشري فيستخدم 16 حرفًا ويرمّز 4 بتات لكل حرف، مما يُفضي إلى زيادة 100% — أي ضعف الحجم الأصلي تمامًا. Base64 أكثر إيجازًا؛ وhex أكثر قابلية للقراءة البشرية لأن كل بايت يُعيَّن إلى حرفين تحديدًا.
هل تحويل Base64 إلى hex مع فقدان بيانات؟
لا. كلا الترميزَين حتميّان وقابلان للعكس للبايتات الأساسية ذاتها. لا يُغيّر التحويل بينهما البيانات ولا يضغطها ولا يشفّرها. تسلسل البايتات الخام متطابق قبل التحويل وبعده — يتغيّر التمثيل النصي فحسب.
لماذا مخرج hex أطول من مدخل Base64؟
يُنتج hex دائمًا حرفَين لكل بايت، بينما يُنتج Base64 حوالي 1.33 حرف لكل بايت. قيمة من 20 بايتًا تُمثَّل بـ 28 حرفًا في Base64 لكن بـ 40 حرفًا في hex. هذه هي المقايضة الجوهرية: hex أكبر حجمًا لكن حدود كل بايت مرئية على الفور.
هل يمكنني تحويل Base64url (Base64 الآمن للـ URL) إلى hex؟
نعم. يستبدل Base64url الرمز + بـ - والرمز / بـ _ ويحذف الحشو. تُطبّع هذه الأداة مدخلات Base64url تلقائيًا قبل التحويل. في الكود، استبدل - بـ + و_ بـ / ثم أضف الحشو قبل فك الترميز: البايتات الناتجة مطابقة لـ Base64 القياسي.
كيف أحوّل تجزئة SHA-256 من Base64 إلى hex؟
الصق تجزئة Base64 في هذه الأداة للحصول على سلسلة hex المكوّنة من 64 حرفًا. في الكود: فكّ ترميز سلسلة Base64 إلى بايتات (32 بايتًا لـ SHA-256)، ثم رمِّز تلك البايتات بصيغة hex. مثلًا في Python: bytes.fromhex هي العكس — base64.b64decode(b64_hash).hex()‎ يمنحك تمثيل hex.
ماذا يحدث إذا كان مدخل Base64 يحتوي على مسافات أو أسطر جديدة؟
معظم فاكّي ترميز Base64، بما في ذلك هذه الأداة، تُزيل المسافات قبل فك الترميز. شهادات PEM والمحتوى المُرمَّز بـ MIME تلتف عادةً Base64 عند 64 أو 76 حرفًا في السطر. فواصل الأسطر ليست جزءًا من البيانات المُرمَّزة وتُهمَل بأمان أثناء التحويل.
متى أستخدم hex بدلًا من Base64؟
استخدم hex حين تحتاج إلى قراءة على مستوى البايت — فحص مخرجات تشفيرية أو تصحيح بروتوكولات ثنائية أو تحديد قيم ألوان (#ff5733). استخدم Base64 حين يكون الإيجاز مهمًا — تضمين بيانات في JSON أو الإرسال عبر البريد الإلكتروني (MIME) أو بناء data URIs. للتخزين والنقل، يوفّر Base64 حوالي 33% من المساحة مقارنةً بـ hex.