تشفير بشيفرة التدفق Rabbit
شفّر النصوص بشيفرة التدفق Rabbit (RFC 4503، eSTREAM) بعبارة مرور بصيغة CryptoJS أو مفتاح hex بطول 128 بت وIV بطول 64 بت. يعمل محليًا.
الناتج بتنسيق OpenSSL "Salted__" مرمّزًا بـ Base64 مع اشتقاق المفتاح وIV من عبارة المرور، وهو التنسيق نفسه الذي يستخدمه CryptoJS.Rabbit.encrypt(text, passphrase). لا يدعم OpenSSL خوارزمية Rabbit.
يعمل بالكامل في متصفحك. لا يتم رفع بياناتك أبدًا.
ما هو تشفير Rabbit؟
تشفّر البيانات بخوارزمية Rabbit، وهي شيفرة تدفق سريعة بطول 128 بت من حافظة eSTREAM (RFC 4503). تصادفها غالبًا في مشاريع JavaScript التي تستخدم CryptoJS.Rabbit، وتنتج هذه الأداة ناتجًا متوافقًا معها.
كيفية استخدام تشفير Rabbit
- اختر عبارة مرور (متوافقة مع OpenSSL) واكتب عبارة المرور، أو مفتاح خام + IV (hex) بمفتاح من 16 بايت وIV اختياري من 8 بايت.
- اكتب النص الصريح أو الصقه.
- انقر تشفير، واختر ناتج Base64 أو Hex وانسخ النتيجة.
مثال
Raw key 000102030405060708090a0b0c0d0e0f, IV 0001020304050607, plaintext "Rabbit stream", Hex output
a0e87bbfc85cd88a7e42510ffa
النتيجة نفسها كما في CryptoJS.Rabbit بالمفتاح وIV نفسيهما.
متى تستخدم تشفير Rabbit
استخدمها للتوافق مع تطبيق يستخدم CryptoJS Rabbit أو لاختبار شيفرة من هذا النوع. وفي التصاميم الجديدة اختر AES-GCM أو ChaCha20-Poly1305 فهما موحَّدتان وموثِّقتان.
كيف يعمل تشفير Rabbit
تحتفظ Rabbit بحالة داخلية من 513 بت (ثماني كلمات حالة بطول 32 بت وثمانية عدّادات وبت حمل) وتخرج 128 بتًا من تدفق المفاتيح في كل تكرار، ويُجرى عليها XOR مع البيانات. المفتاح 128 بت؛ وIV اختياري بطول 64 بت يجعل تدفق مفاتيح كل رسالة فريدًا. يشتق وضع عبارة المرور المفتاح وIV من العبارة وملح عشوائي بـ EVP_BytesToKey (MD5) أو PBKDF2-SHA256 ويخرج بيانات Salted__ بترميز Base64، مطابقة لـ CryptoJS.Rabbit.encrypt(text, passphrase) مع خيار MD5. وتُقرأ مفاتيح hex الخام بترتيب تدفق البايتات كما تفعل CryptoJS؛ بينما يطبع RFC 4503 متجهات اختباره كأعداد big-endian، أي بعكس كل كتلة من 16 بايت.
حالات الاستخدام الشائعة
- إعادة إنتاج ناتج
CryptoJS.Rabbit.encryptلأغراض تصحيح الأخطاء - إنشاء بيانات اختبار لتطبيق JavaScript يستخدم Rabbit
- مقارنة سلوك شيفرات التدفق مع RC4
- التحقق من متجهات تدفق المفاتيح في RFC 4503
ملاحظة أمنية
لا يُعرف كسر عملي لـ Rabbit، لكنها نادرة الاستخدام وبلا حماية سلامة مدمجة وقلّة من المكتبات تدعمها. استخدم AES-GCM للأنظمة الجديدة.
الأسئلة الشائعة
هل هذا متوافق مع CryptoJS؟
نعم. يطابق وضع عبارة المرور مع EVP_BytesToKey (MD5) الأمر CryptoJS.Rabbit.encrypt(text, "passphrase")، ويطابق الوضع الخام CryptoJS بمفتاح وIV صريحين على شكل WordArray.
هل يستطيع OpenSSL فك Rabbit؟
لا، فـ OpenSSL لا ينفّذ Rabbit. المشترك فقط هو صيغة الحاوية (Salted__ + الملح).
هل أحتاج إلى IV؟
اختياري في Rabbit، لكن دونه يعطي المفتاح نفسه تدفق المفاتيح نفسه دائمًا. أما وضع عبارة المرور فيشتق دائمًا IV جديدًا من الملح العشوائي.