مبدل رایگان

رمزگذار URL / رمزگشا

URL ها و اجزای URI را فوراً در مرورگر خود رمزگذاری و رمزگشایی کنید. رایگان، خصوصی و بدون نیاز به آپلود.

یا

درباره این ابزار

رمزگذاری URL (به طور رسمی رمزگذاری درصد، تعریف شده در RFC 3986) کاراکترهایی را که در URL ها دارای معنای خاصی هستند - فاصله، اسلش، علامت، علامت هش - با استفاده از علائم درصد و به دنبال آن اعداد هگز به شکل ایمن ترجمه می کند. کاراکتر فاصله به %20 می شود (یا + در زمینه های کدگذاری شده با فرم)، علامت علامت به %26 می شود و غیره. بدون این رمزگذاری، کاراکترهای خاص به جای اینکه به عنوان داده های تحت اللفظی، URL را شکسته یا رفتار ناخواسته ای ایجاد کنند، به عنوان نحو URL تفسیر می شوند.

دو رمزگذاری مرتبط اما متمایز وجود دارد. رمزگذاری مؤلفه URL استاندارد برای همه چیزهایی که خارج از مجموعه کاراکترهای محفوظ نیستند از %-escapes استفاده می کند: A-Z، a-z، 0-9، خط فاصله، خط زیر، نقطه، tilde. نوع رمزگذاری شده با فرم (application/x-www-form-urlencoded) علاوه بر این، فضاها را به عنوان علائم بعلاوه در نظر می گیرد و از قوانین متفاوتی برای برخی کاراکترهای دیگر استفاده می کند. EncodeURIcomponent جاوا اسکریپت از رمزگذاری دقیق مؤلفه استفاده می کند. encodeURI از فرم مجاز تری استفاده می کند که کاراکترهای ساختار URL را حفظ می کند.

این ابزار هم رمزگذاری و هم رمزگشایی را ارائه می دهد. حالت رمزگذاری هر کاراکتری را که نیاز به فرار در قالب %HH دارد، می‌پیچد. حالت رمزگشایی تغییر شکل را معکوس می کند. هر دو به طور کامل در مرورگر شما با استفاده از توابع URL جاوا اسکریپت داخلی اجرا می شوند، بنابراین هیچ داده ای به جایی ارسال نمی شود.

چرا URL ها را رمزگذاری یا رمزگشایی می کنیم؟

هر زمان که داده در URL گنجانده شود - پارامترهای رشته پرس و جو، بخش های مسیر حاوی ورودی کاربر، اهداف تغییر مسیر - رمزگذاری مناسب مورد نیاز است. شکست در کدگذاری باعث ایجاد URL هایی می شود که با ظاهر شدن کاراکترهای خاص شکسته می شوند، مرزهای پارامتر به رشته های پرس و جو نشت می کند (تبدیل &x=1 به یک پارامتر جداگانه)، یا توسط سرورهای وب به عنوان درخواست های نادرست مسدود می شوند.

رمزگشایی برعکس است: استخراج داده های اصلی از یک URL رمزگذاری شده. نوار آدرس مرورگر اغلب URL ها را به صورت کدگذاری شده نشان می دهد. رمزگشایی نشان می دهد که در واقع چه چیزی در نظر گرفته شده است. ورود به سیستم، اشکال زدایی و تجزیه و تحلیل امنیتی همگی از URL های رمزگشایی شده که پارامترها و مسیرهای اصلی را نشان می دهند سود می برند.

نحوه استفاده

یک رشته بچسبانید، جهت را انتخاب کنید.

  1. رمزگذاری یا رمزگشایی را انتخاب کنید: کدگذاری نویسه‌های ناامن را در قالب %HH می‌پیچد. رمزگشایی معکوس می کند %HH فرار به نویسه های تحت اللفظی.
  2. متن ورودی را اضافه کنید: رشته را برای رمزگذاری یا رمزگشایی بچسبانید. برای رمزگذاری، این مقدار معمولاً یک مقدار تحت اللفظی با فاصله، کاراکترهای خاص یا محتوای غیر ASCII است. برای رمزگشایی، این یک URL یا جزء URL حاوی %HH escapes است.
  3. تبدیل کنید: این ابزار encodeURIcomponent یا decodeURIcomponent را اعمال می کند. خروجی کدگذاری شده برای جاسازی در URL ایمن است. خروجی رمزگشایی شده مقدار واقعی کلمه است.
  4. کپی یا دانلود کنید: نتیجه را هر کجا که نیاز دارید استفاده کنید. مقادیر رمزگذاری شده در URL ها قرار می گیرند. مقادیر رمزگشایی داده های اصلی را نشان می دهد.

موارد استفاده رایج

جزئیات فنی

encodeURIcomponent هر نویسه خارج از مجموعه محفوظ [A-Za-z0-9-_.~] را رمزگذاری می کند. فضاها %20 می‌شوند، علائم به‌علاوه تبدیل به %2B، علامت‌های برابر تبدیل به %3D و غیره می‌شوند. کاراکترهای خارج از ASCII ابتدا در UTF-8 کدگذاری می‌شوند و سپس هر بایت %% می‌شود.

encodeURI مجاز تر است و برای URL های کامل به جای اجزا در نظر گرفته شده است. از /، ?، &، =، # و چند مورد دیگر فرار نمی کند زیرا آن کاراکترها دارای معنای نحوی URL هستند. برای جاسازی داده های کاربر در یک URL، encodeURIcomponent تقریبا همیشه انتخاب مناسبی است.

decodeURIcomponent %-escape ها را معکوس می کند و تأیید می کند که هر فرار به خوبی شکل گرفته است و بایت های حاصل UTF-8 معتبر را تشکیل می دهند. ورودی نادرست به جای تولید زباله، خطا ایجاد می کند.

بهترین شیوه ها

سوالات متداول

چه کاراکترهایی نیاز به رمزگذاری URL دارند؟
کاراکترهای رزرو شده (&، =، ?، #، /، :، @) و نویسه‌های ناامن (فضا، <، >، {، }، |، ^، ~، [،]، `) باید کدگذاری شوند. کاراکترهای الفبایی و -_.~ ایمن هستند و نیازی به رمزگذاری ندارند.
تفاوت بین encodeURI و encodeURIcomponent چیست؟
encodeURI یک URL کامل را رمزگذاری می کند اما کاراکترهای رزرو شده (://?#) را حفظ می کند. encodeURIcomponent همه چیز را به جز -_. رمزگذاری می کند!~*'() — از آن برای مقادیر پارامترهای پرس و جو استفاده کنید. این ابزار هر دو حالت را ارائه می دهد.
فضاها در URL ها چگونه رمزگذاری می شوند؟
فضاها را می توان به صورت %20 (درصد رمزگذاری استاندارد) یا + (رمزگذاری فرم) کدگذاری کرد. %20 برای مسیرهای URL صحیح است، در حالی که + در رشته های پرس و جو از فرم های HTML استفاده می شود. این ابزار به طور پیش فرض از %20 استفاده می کند.
آیا می توانم کاراکترهای یونیکد را رمزگذاری کنم؟
بله. کاراکترهای یونیکد ابتدا به UTF-8 بایت کدگذاری می شوند، سپس هر بایت به صورت درصد رمزگذاری می شود. برای مثال، '日' به %E6%97%A5 تبدیل می‌شود (سه بایت UTF-8، هر درصد کدگذاری شده).
آیا باید از encodeURI استفاده کنم یا encodeURIcomponent؟
تقریباً همیشه رمزگذاریURIcomponent. تنها در صورتی از encodeURI استفاده کنید که یک URL کامل دارید و می‌خواهید ساختار آن را حفظ کنید - معمولاً نادر است زیرا به هر حال URL را از مؤلفه‌ها می‌سازید.
آیا داده های من روی سرور آپلود می شود؟
نه. رمزگذاری و رمزگشایی URL به طور کامل در مرورگر شما انجام می شود.
آیا ایموجی های یونیکد را مدیریت می کند؟
بله. ایموجی ها توالی UTF-8 چند بایتی هستند. رمزگذار زنجیره ای از %% بایت های فرار تولید می کند که رمزگشاها به درستی دوباره به شکلک اصلی جمع می شوند.
اگر ورودی من دارای رشته هایی با ظاهر %HH باشد که واقعاً کدگذاری نشده باشند، چه؟
رمزگذاری هر % را به %25 تبدیل می‌کند، سپس برای بقیه مجدداً escape اعمال می‌شود. رمزگشایی ورودی دقیق خطاها را در فرارهای نادرست ایجاد می کند. رشته های مبهم ممکن است به اشتباه رمزگشایی شوند.