مشفر ومفكك Base58
Base58 ترميز من البيانات الثنائية إلى النص صُمم لتجنب عدد من المحارف سهلة الالتباس. تستبعد أبجدية Bitcoin المحارف 0 O I l وكذلك + /، بينما ترتب أنظمة أخرى الرموز الـ58 نفسها بطريقة مختلفة. من أمثلته المعروفة عناوين Bitcoin القديمة من نوع Base58Check وسلاسل IPFS CIDv0. تحول هذه الأداة داخل المتصفح نص UTF-8 أو بايتات سداسية عشرية دقيقة باستخدام أبجدية Bitcoin أو Ripple أو Flickr، وترفض أي محرف خارج الأبجدية المحددة.
كيفية تشفير Base58 وفك ترميزه
-
1
أدخل بايتات أو سلسلة Base58
اتجاه التشفير يقبل البيانات الست عشرية أو نصا خاما؛ واتجاه فك الترميز يقبل Base58.
-
2
اختر الأبجدية إذا لزم
الافتراضي هو Base58 الخاص بـ Bitcoin؛ وتتوفر متغيرات Ripple وFlickr للتوافق.
-
3
شغّل التحويل
Base58 لا يقسم إلى مجموعات مرتبة من 5 أو 6 بتات؛ بل يعامل كعدد صحيح واحد بترتيب البايت الأكبر أولا، ويقسم على 58 مرارا.
-
4
انسخ النتيجة
تحافظ السلاسل المشفرة على البايتات الصفرية البادئة كأحرف `1` بادئة (محرف الصفر في أبجدية Bitcoin).
أبجدية Bitcoin Base58
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
لاحظ ما هو مفقود: 0، O، I، l. أول محرف في الأبجدية هو 1، ويمثل العدد الصحيح 0.
كيف يعمل فعليا
بخلاف Base64 الذي يقسم البتات في مجموعات ثابتة، يعامل Base58 سلسلة البايتات كلها كعدد صحيح واحد بترتيب البايت الأكبر أولا N ويعبر عنه بالأساس 58:
result = []
while N > 0:
result.prepend(alphabet[N mod 58])
N = N / 58
for each leading zero byte in input:
result.prepend(alphabet[0]) # i.e. '1'
لهذا يصعب بث ترميز Base58 تدريجيا: تحتاج إلى الرقم كله قبل أن تستطيع إخراج أي محرف.
Base58 مقابل Base58Check
تتكون حمولة Base58Check النموذجية لعنوان P2PKH قديم من 25 بايتا: بايت إصدار واحد و20 بايت تجزئة و4 بايتات للمجموع التحققي. المجموع التحققي هو أول 4 بايتات من تجزئة SHA-256 المزدوجة لبايت الإصدار والتجزئة. ينتج ترميز الحمولة كاملة بـBase58 سلسلة العنوان المعروفة.
تحول هذه الأداة Base58 العادي فقط. استخدم مدقق Base58Check مخصصا عندما تحتاج إلى التحقق من إصدار العنوان ومجموعه التحققي.
متغيرات الأبجدية
| المتغير | أين يُستخدم | الفروقات مقابل Bitcoin |
|---|---|---|
| Bitcoin | عناوين BTC، IPFS CIDv0 | الأساس المرجعي |
| Ripple | عناوين XRP | مواضع محارف مُبدَّلة |
| Flickr | روابط صور قصيرة | الأحرف الصغيرة قبل الكبيرة |
لماذا لا نستخدم Base64 فقط؟
لا يغير Base64 الطول كثيرا بين البيانات الثنائية والنص المشفر (4 محارف لكل 3 بايتات)، وهذا فعال. Base58 لديه زيادة متغيرة قليلا لكنه بلا محارف ملتبسة، وهذا ما تحتاجه عندما يضطر شخص إلى نسخ عنوان يدويا أو قراءته عبر الهاتف.
الأسئلة الشائعة
ليس دائما. Base58 أفضل عندما يتعامل البشر مع السلسلة؛ وBase64 أفضل عندما تنقلها الآلات. Base64 يرمز 6 بتات لكل محرف مقابل نحو 5.86 في Base58، لذلك Base64 أضيق قليلا.
يرمز Base58 عددا صحيحا كبيرا، لذلك يختلف الطول بمحرف أو محرفين حسب البتات العليا. عناوين P2PKH النموذجية 34 محرفا، لكن 33 ممكنة.
يمكن للأداة فك السلسلة إلى بايتات خام؛ اختر الإخراج السداسي العشري لإظهار أي بايتات دون فقدان. لكنها لا تتحقق من الإصدار أو المجموع التحققي، لذلك لا يثبت نجاح الفك صحة العنوان. استخدم مدقق Base58Check لهذا الغرض.
نعم. كل بايت صفري في بداية الإدخال يصبح محرف 1 في الخرج، وهذا ما يجعل عناوين Bitcoin التي تبدأ بـ 1 تعمل.
أدوات ذات صلة
مولّد مفاتيح PGP
أنشئ زوج مفاتيح OpenPGP مدرّعًا بنظام ASCII وشهادة إبطال باستخدام Curve25519 أو RSA 2048 أو RSA 4096.
مولد هاش
أنشئ قيم تجزئة MD5 وSHA-1 وSHA-256 وSHA-384 وSHA-512 وCRC32 من النصوص، مع ملخّص جاهز للنسخ لاستخدامه في فحوص المجموع والمقارنات.
مشفّر فيجينير
شفّر الرسائل وافكك تشفيرها بشفرة فيجينير الكلاسيكية باستخدام كلمة مفتاحية. تُزيح الأحرف اللاتينية A-Z مع الحفاظ على حالة الأحرف والمسافات وعلامات الترقيم.
مولّد مفاتيح SSH
أنشئ زوج مفاتيح SSH من نوع RSA (2048 أو 3072 أو 4096 بت) بالكامل داخل متصفحك. لا يغادر جهازك أي من المفتاح الخاص أو العام. أضف تعليقًا ونزّل كليهما.
أداة ترميز النصوص
قم بتشفير وفك تشفير الرسائل النصية باستخدام خوارزمية AES مع كلمة مرور، بحيث لا يستطيع سوى المستلم قراءتها.
مولّد SHA512
احسب تجزئات SHA-512، 128 حرفًا سداسيًا عشريًا، 256 بت من مقاومة التصادم. تُستخدم في ملفات كلمات المرور shadow الحديثة والتواقيع الرقمية وHMAC.
الأداة متاحة بلغات أخرى
- Base58エンコーダー・デコーダー [JA]
- Base58-kodare och avkodare [SV]
- Base58 인코더 및 디코더 [KO]
- Codificador e Decodificador Base58 [PT]
- Bộ mã hóa và giải mã Base58 [VI]
- Codificador y Decodificador Base58 [ES]
- Base58 encoder en decoder [NL]
- Encodeur et décodeur Base58 [FR]
- ตัวเข้ารหัสและถอดรหัส Base58 [TH]
- Base58-Encoder/Decoder [DE]
- Encoder dan Decoder Base58 [ID]
- Koder i dekoder Base58 [PL]
- Кодировщик и декодировщик Base58 [RU]
- Base58 Kodlayıcı ve Çözücü [TR]
- Base58 编码器和解码器 [ZH]
- Base58 Encoder and Decoder [EN]
- Codificatore e Decodificatore Base58 [IT]