سؤال

والسؤال هو عن أي حديث غير المدارة اللغات مثل language.C، دلفي، أي شيء.

وأود أن إنشاء بلدي خوارزمية التشفير ذلك، خلافا للآخرين، يقلل من طول السلسلة المشفرة.

وكان فكرتي الأولى لخلق بلدي مماثلة نظام Numberic للhexadicimal، ولكن مع مزيد سبيل المثال characters.For [0..9] + [A..Z] .That شأنه أن يجعل عددا تصل 40 إلى القيمة رقم واحد. I يمكن أيضا إضافة أرقام أخرى مثل '!،. /؟) (#! "وهلم جرا.

وسؤالي هو كيفية تنفيذ هذا النظام Numberic لمن الألف إلى الياء السمن 0 إلى 9.Do لدي أن يعلن كل قيمة واحدة ثابتة ما يصل الى 0xZZZZZZZZ؟ من شأنه أن يجعل حياتي رهيب

ومن فضلك أعطني اقتراحاتكم، والأمثلة. :)

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

المحلول

ودعونا نفكر في ذلك.

وكل حرف قاعدة 40 يستغرق 8 بت. فإنه بترميز عدد 0-39، الذي هو مجرد شعر أكثر من 5 قطع من المعلومات الفعلية.

وبايت واحد يمكن أن يمثل 256 قيم مختلفة. A ترميز قاعدة 40 لا يمثل سوى 40 قيم مختلفة في نفس بايت.

ويبدو أن هذا شبكة <م> فقدان من 2-3 بت لكل بايت المشفرة.

وأما وقد قلت ذلك، قيمة قاعدة 40 هي سلسلة لا أكثر ولا أقل. لا يلزم إعلان قاعدة بيانات يتوهم - انها مجرد سلسلة

وأنت تكتب وظيفتين - toBase40 (someBytes) وtoBytes (someBase40string) لتحويل السلاسل base40 لسلاسل العادية

إذا كنت ترغب في حل موجود أحسنت، base64 في .

نصائح أخرى

وأنت في حاجة إلى تغيير طريقة كيفية الحواسيب وتخزين الأعمال.

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

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

وعادة ما يتم القيام به بعض الضغط شكل قبل التشفير (غزيب أو شيئا من هذا القبيل) ولكن هذا لا يعمل من خلال تغيير أنظمة العدد.

وP.S. استخدام بعض خوارزمية التشفير التي أثبتت جدواها.

وعادة الطريق خوارزميات التشفير تقلل من حجم النص المشفر لتشغيل النص من خلال العامة خوارزمية ضغط الغرض أولا، ثم تشفير نتيجة المضغوط. سوف دائما تقريبا الحصول على نتيجة أفضل بهذه الطريقة من محاولة الجمع بين خوارزميات اثنين الى واحد.

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

وأنت من المحتمل أن تأتي مع خوارزمية غير مأمون.

استخدم خوارزمية واستخدام ضغط القائمة.

وأوصي ببساطة ضغط المدخلات (باستخدام غزيب زليب، أو أيا كان) قبل تشفيرها. هذا هو أسهل وأكثر أمنا من إنشاء خوارزمية الخاصة بك. (GnuPG يفعل ذلك، على سبيل المثال).

وسلاسل باستخدام Base64 شائعة في العديد من لغات الكمبيوتر وانها جميلة القياسية. ويستخدم الأحرف التالية:

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

وABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 + /

http://en.wikipedia.org/wiki/Base64 للحصول على مزيد من المعلومات

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