ToolDeck

تبدیل Base64 به Hex

تبدیل بین Base64 و هگزادسیمال

Base64

Hex

به‌صورت محلی اجرا می‌شود · جای‌گذاری اسرار امن است
خروجی اینجا نمایش داده می‌شود…
Base64 → Hex

تبدیل Base64 به Hex چیست؟

تبدیل Base64 به hex، داده‌ها را بین دو روش رایج کدگذاری باینری-به-متن جابجا می‌کند. Base64 داده‌های باینری را با ۶۴ کاراکتر ASCII (A-Z، a-z، 0-9، +، /) نمایش می‌دهد و هر ۳ بایت را به ۴ کاراکتر تبدیل می‌کند. هگزادسیمال هر بایت را دقیقاً به دو کاراکتر از الفبای ۱۶ نمادی (0-9، a-f) نمایش می‌دهد. تبدیل بین این دو فرمت یک فرایند دو مرحله‌ای است: رشته Base64 را به بایت‌های خام تبدیل کنید، سپس آن بایت‌ها را در فرمت هدف بازکدگذاری کنید.

نمایش هگزادسیمال، نمایش استاندارد داده‌های باینری در برنامه‌نویسی سطح پایین، رمزنگاری و پروتکل‌های شبکه است. هر کاراکتر hex مستقیماً به یک nibble چهاربیتی نگاشت می‌شود که خواندن مقادیر تک‌تک بایت‌ها را آسان می‌کند. یک هش SHA-256، برای نمونه، تقریباً همیشه به‌صورت یک رشته hex ۶۴ کاراکتری نمایش داده می‌شود. Base64 در مقابل برای فشردگی بهینه شده است — همان هش تنها ۴۴ کاراکتر در Base64 می‌گیرد — و کدگذاری استاندارد برای پیوست‌های ایمیل (MIME)، data URI و محموله‌های API است.

هر دو کدگذاری در RFC 4648 تعریف شده‌اند. تبدیل بین آن‌ها بدون اتلاف است: هیچ داده‌ای اضافه یا حذف نمی‌شود، تنها نمایش متنی تغییر می‌کند. این ویژگی، تبدیل Base64 به hex را به یک عملیات معمول در رفع اشکال محموله‌های رمزشده، بررسی اثرانگشت گواهی‌نامه‌ها، یا تأیید خروجی هش در سیستم‌هایی با فرمت‌های نمایش متفاوت تبدیل می‌کند.

چرا از این مبدل Base64 به Hex استفاده کنیم؟

این ابزار مستقیماً در مرورگر شما بین Base64 و هگزادسیمال تبدیل می‌کند. هیچ داده‌ای دستگاه شما را ترک نمی‌کند و تبدیل در لحظه تایپ انجام می‌شود.

تبدیل فوری
Base64 یا hex را وارد کنید و نتیجه را فوری ببینید — بدون ارسال به سرور. حالت دوطرفه امکان جابجایی بین دو جهت را با یک کلیک فراهم می‌کند.
🔒
پردازش با اولویت حریم خصوصی
تمام تبدیل‌ها به‌صورت محلی در مرورگر شما با JavaScript اجرا می‌شوند. کلیدهای رمزنگاری، هش‌ها و توکن‌های شما هرگز از طریق شبکه ارسال نمی‌شوند.
حالت دوطرفه
با یک دکمه بین Base64-به-hex و hex-به-Base64 جابجا شوید. این ابزار هر دو نوع Base64 استاندارد و URL-safe را تشخیص داده و پردازش می‌کند.
📋
خروجی تمیز، آماده برای استفاده
خروجی به‌صورت hex کوچک بدون جداکننده یا پیشوند است — فرمتی که اکثر API‌ها، CLI‌ها و زبان‌های برنامه‌نویسی انتظار دارند. با یک کلیک کپی کنید.

موارد استفاده از تبدیل Base64 به Hex

توسعه‌دهنده فرانت‌اند
پاسخ‌های API کدگذاری‌شده با Base64 را هنگام رفع اشکال پروتکل‌های باینری، فریم‌های WebSocket یا محتوای ArrayBuffer در کنسول DevTools مرورگر به hex تبدیل کنید.
مهندس بک‌اند
خلاصه هش‌های Base64 از امضاهای JWT یا پاسخ‌های HMAC را به hex ترجمه کنید تا با مقادیر ذخیره‌شده در OpenSSL یا پایگاه داده که از نمایش hex استفاده می‌کنند مقایسه شوند.
DevOps / SRE
اثرانگشت گواهی‌نامه‌های TLS را با تبدیل کلید عمومی Base64 از فایل‌های PEM به فرمت hex اثرانگشت نمایش داده‌شده توسط مرورگرها و ابزارهای نظارتی تأیید کنید.
تحلیلگر امنیت
کلیدهای رمزنگاری و بردارهای مقداردهی اولیه (IV) که به‌صورت Base64 در ترافیک API دریافت می‌شوند را بررسی کنید — برای تحلیل سطح بایت در Wireshark یا CyberChef به hex تبدیل کنید.
مهندس داده
ستون‌های باینری کدگذاری‌شده با Base64 از پایگاه‌های داده (PostgreSQL bytea، MongoDB BinData) را برای مقایسه، ثبت رویداد یا اسکریپت‌های مهاجرت به hex تبدیل کنید.
دانشجو / یادگیرنده
رابطه بین Base64 و هگزادسیمال را با مشاهده نمایش بایت‌های یکسان در هر فرمت درک کنید و اصول کدگذاری را تقویت نمایید.

مقایسه کدگذاری Base64 و هگزادسیمال

Base64 و هگزادسیمال هر دو داده‌های باینری را به متن قابل چاپ تبدیل می‌کنند، اما مصالحه‌های متفاوتی بین فشردگی و خوانایی دارند. جدول زیر تفاوت‌های کلیدی را خلاصه می‌کند.

ویژگیBase64Hexadecimal
الفباA-Z a-z 0-9 + / =0-9 a-f
بیت در هر کاراکتر64
سربار اندازه~۳۳٪ بزرگ‌تر از خام۱۰۰٪ بزرگ‌تر از خام
خواناییفشرده اما مبهمهر بایت به‌صورت ۲ کاراکتر قابل مشاهده
استفاده اصلیایمیل، data URI‌ها، API‌هاهش‌های رمزنگاری، آدرس‌های 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 با نگاشت هر کاراکتر به مقدار ۶ بیتی آن، الحاق بیت‌ها و تقسیم آن‌ها به بایت‌های ۸ بیتی (با دور انداختن پدینگ) به بایت‌های خام تبدیل می‌شود. این مرحله کدگذاری تعریف‌شده در RFC 4648 بخش ۴ را معکوس می‌کند.

در مرحله دوم، هر بایت به نمایش هگزادسیمال دو رقمی آن تبدیل می‌شود. مقدار بایت ۰ تا ۲۵۵ به ۰۰ تا ff نگاشت می‌شود. بایتی مثل 0x4F (دسیمال ۷۹) به دو کاراکتر '4' و 'f' تبدیل می‌شود. رشته hex کامل صرفاً الحاق تمام جفت‌های دو کاراکتری است. جهت معکوس (hex به Base64) همین مراحل را به ترتیب معکوس اعمال می‌کند: جفت‌های hex را به بایت تبدیل کرده، سپس نتیجه را با Base64 کدگذاری کنید.

باینری ۴ بیتیرقم هگز
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 از ۶۴ کاراکتر استفاده می‌کند و ۶ بیت در هر کاراکتر کدگذاری می‌کند که منجر به سربار اندازه حدود ۳۳٪ نسبت به بایت‌های خام می‌شود. هگزادسیمال از ۱۶ کاراکتر استفاده می‌کند و ۴ بیت در هر کاراکتر کدگذاری می‌کند که منجر به سربار ۱۰۰٪ — دقیقاً دو برابر اندازه اصلی — می‌شود. Base64 فشرده‌تر است؛ hex برای انسان خواناتر است زیرا هر بایت دقیقاً به دو کاراکتر نگاشت می‌شود.
آیا تبدیل Base64 به hex با اتلاف داده همراه است؟
خیر. هر دوی Base64 و hex کدگذاری‌های قطعی و برگشت‌پذیر از بایت‌های زیرین یکسانی هستند. تبدیل بین آن‌ها داده را تغییر نمی‌دهد، فشرده نمی‌کند یا رمزنگاری نمی‌کند. توالی بایت‌های خام قبل و بعد از تبدیل یکسان است — تنها نمایش متنی تغییر می‌کند.
چرا خروجی hex من از ورودی Base64 طولانی‌تر است؟
Hex همیشه ۲ کاراکتر به ازای هر بایت تولید می‌کند، در حالی که Base64 حدود ۱.۳۳ کاراکتر به ازای هر بایت تولید می‌کند. یک مقدار ۲۰ بایتی ۲۸ کاراکتر Base64 اما ۴۰ کاراکتر hex است. این مصالحه ذاتی است: hex بزرگ‌تر است اما مرز هر بایت بلافاصله قابل مشاهده است.
آیا می‌توانم Base64url (Base64 ایمن برای URL) را به hex تبدیل کنم؟
بله. Base64url علامت + را با - و / را با _ جایگزین می‌کند و پدینگ را حذف می‌کند. این ابزار ورودی Base64url را قبل از تبدیل به‌طور خودکار نرمال‌سازی می‌کند. در کد، - را با + و _ را با / جایگزین کنید و سپس قبل از رمزگشایی پدینگ اضافه کنید: بایت‌های حاصل با Base64 استاندارد یکسان هستند.
چگونه یک هش SHA-256 را از Base64 به hex تبدیل کنم؟
هش Base64 را در این ابزار وارد کنید تا رشته hex ۶۴ کاراکتری را دریافت کنید. در کد: رشته Base64 را به بایت‌ها تبدیل کنید (۳۲ بایت برای SHA-256)، سپس آن بایت‌ها را با hex کدگذاری کنید. برای نمونه، در Python: bytes.fromhex معکوس است — base64.b64decode(b64_hash).hex() نمایش hex را به شما می‌دهد.
اگر ورودی Base64 شامل فاصله یا خط جدید باشد چه اتفاقی می‌افتد؟
اکثر رمزگشاهای Base64، از جمله این ابزار، فاصله‌ها را قبل از رمزگشایی حذف می‌کنند. گواهی‌نامه‌های کدگذاری‌شده با PEM و محتوای کدگذاری‌شده با MIME معمولاً Base64 را در ۶۴ یا ۷۶ کاراکتر در هر خط می‌پیچند. شکست خطوط بخشی از داده‌های کدگذاری‌شده نیستند و در حین تبدیل با خیال راحت نادیده گرفته می‌شوند.
چه زمانی باید از hex به جای Base64 استفاده کنم؟
از hex استفاده کنید وقتی به خوانایی سطح بایت نیاز دارید — بررسی خروجی رمزنگاری، رفع اشکال پروتکل‌های باینری، یا تعیین مقادیر رنگ (#ff5733). از Base64 استفاده کنید وقتی فشردگی اهمیت دارد — جاسازی داده در JSON، انتقال از طریق ایمیل (MIME)، یا ساختن data URI‌ها. برای ذخیره‌سازی و انتقال، Base64 در مقایسه با hex حدود ۳۳٪ فضا صرفه‌جویی می‌کند.