سؤال

وأستخدمه UUIDs، ولكنها ليست لطيفة بشكل خاص للقراءة والكتابة والتواصل. لذلك أود أن ترميز لهم. ويمكنني أن استخدام base64 في، أو base32، لكنها لن تكون سهلة على أي حال: base64 في ديه الأحرف والرموز رسملتها. Base32 هو أفضل قليلا، ولكن لا يزال بإمكانك الحصول على الاشياء الخرقاء.

وأنا أتساءل عما اذا كان هناك طريقة جميلة ونظيفة لترميز رقم في الصوتيات قبولا، وذلك لتحقيق أفضل قراءة ونأمل أن قليلا من الضغط.

هل كانت مفيدة؟

المحلول

فقاعة الثرثرة هو فكرة جيدة لمحاولة. فهو يولد الانتاج لا معنى لها ولكن يمكن قراءتها مثل:

xesef-disof-gytuf-katof-movif-baxux

نصائح أخرى

وأرجو أن لا تستخدم هذه الفكرة: والآلي لعنة مولد :)

لماذا لا تستخدم شيئا على غرار ما يفعل PGP إلى إنشاء مفاتيح قابلة للقراءة، لمجرد العثور على قائمة لطيفة من الكلمات التي هي مميزة، دعونا نقول كنت تستخدم 128 بت UUID، وقائمة من 256 الكلمات (2 ^ 8) يعني 16 الكلمات.

سؤال غبي ولكن لماذا الناس قراءة / كتابة UUID في / الخ. فيما يتعلق طلبك؟

وإذا كان كل ما أريده هو وسيلة للاتصال القيم عرافة مقروء (أي عبر الهاتف، أو عندما يوجه شخص ما لفظيا ما اكتب)، ثم أقترح عليك استخدام واحد من مختلف الحروف الهجائية الصوتية، مثل في الناتو الأبجدية الصوتية أو في الولايات المتحدة الجيش / البحرية الأبجدية الصوتية .

في هذا الأخير، ويتحدث الحروف AF بأنها "قادرة"، "خباز"، "تشارلي"، "الكلب"، "سهل"، و "الثعلب"، على التوالي، لذلك كنت قراءة تسلسل عرافة "3fd2cc0e" كما "ثلاثة الكلب الثعلب اثنين تشارلي تشارلي الصفر سهلة". سيتم قراءة A UUID في بالضبط بنفس الطريقة.

يستخدم S / KEY قاموس 2048 كلمات لتعيين 64 أرقام قليلا ل سلسلة من 6 معرفة مسبقا الكلمات / المقاطع. (الناس سوف تجد دائما كلمة سيئة إذا كانوا يبحثون لهم.))

وفقاعة الثرثرة وbase32 غير فعالة، وخاصة في قضيتك. أقترح عليك أن تجعل الخوارزمية الخاصة بك. وبما أن هناك 20 الحروف الساكنة والحروف المتحركة 6 (بما في ذلك 'ص') هل يمكن أن يكون تقريبا. 20 * 6 * 2 + 6 * 6 = 276 الساكنة / حرف علة العلة / أزواج الساكنة. لذلك كل بايت من رقمك يمكن أن يمثله الزوج. مع قليل من التغيير والتبديل الخوارزمية الخاصة بك يمكن أن تنتج الكلمات pronounceable أقصر بكثير من الثرثرة فقاعة. حتى انك تستطيع لعب النرد واستبدال كافة الأرقام غريبة مع الساكن / حرف علة. على سبيل المثال، 0123456789ABCDEF (عرافة) بترميز لABECIDOFUGYHKRM. 3141592654 (ديسمبر) بترميز لHHIA-ROIR. كنت تركت مع عشرة الساكنة الغيار التي يمكن إرفاقها مع حروف العلة لاستبدال بعض الحروف الساكنة مزدوجة الخ.

<اقتباس فقرة>   <اقتباس فقرة>     

وونأمل أن قليلا من ضغط

  

ولست متأكدا بالضبط ما تعنيه هناك. صنع شيء "قراءة" أو "pronouncable" ستوسع حتما المساحة المطلوبة لذلك. ربما كنت تعني "نأمل شيئا من التكرار"؟ سيكون من الجيد إذا، حتى لو كان المستخدم بإجراء خطأ صغير، يمكن للنظام كشف وربما حتى تصحيحها.

وحقا أنها تعتمد إلى حد كبير على كيفية كبيرة هي UUIDs وكيف غالبا ما يتم إبلاغها. إذا كانت بحاجة إلى أن ترسل عبر الهاتف أو عبر بروتوكول الإنترنت، وتريد التكرار أكثر مسموع. إذا كانت بحاجة إلى إدخالها إلى الأجهزة النقالة مع لوحات المفاتيح الرقمية، فإنها تميل إلى أن يكون من الصعب إدخال الأحرف الأبجدية، moreso إذا كانت لحالة الأحرف. إذا أنها مكتوبة انخفضت كثيرا، تحتاج للقلق حول الشخصيات التي تبدو مشابهة (O و 0 و o، على سبيل المثال). إذا كانت تحتاج إلى حفظها، ثم ربما سلاسل من الكلمات الحقيقية هي الأفضل (لديها نظرة على PGP كلمة قائمة ).

ولكن أعتقد عظيم حل جميع النواحي هو مجرد تستخدم الأرقام Numberic ل. انهم الكثير من الجهد لإرباك مع بعضها البعض (على حد سواء عندما تحدثا وكتابة) من بعض الأحرف الأبجدية. من السهل أن يدخل على الأجهزة النقالة، والناس ليسوا سيئة للغاية في حفظ الأرقام.

وعلى طول السلسلة ليست سيئة للغاية سواء. دعونا نقارن base32 مع قاعدة 10 (عشري). طول سلسلة العشرية هي الأوقات log_10(32) طول سلسلة base32 المقابلة، أو نحو 1.5 مرات أطول فترة. عشرة أحرف من base32 تتوافق مع 15 أرقام عشرية.

وليس كثيرا من ركلة جزاء، IMO، كما نرى في قاعدة 32 فإنه من السهل الخلط بين C و T، أو S، F و X (عندما تحدث)، وشخص يتحدث بلكنة أجنبية هو أكثر من المحتمل أن يسبب المتاعب.

إذا كانت سهلة لقراءة أنهم ربما لن تكون فريدة من نوعها للغاية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top