التخطي إلى المحتوى
Toova
جميع الأدوات

تجزئة Keccak-256

خصوصية بالتصميم — يعمل بالكامل في متصفحك

ضع أي سلسلة UTF-8 في صندوق الإدخال لتحصل على موجز Keccak-256 بطول 32 بايت. تستخدمها Ethereum في كل مكان: عناوين EIP-55، ومحددات الدوال، واشتقاق فتحات التخزين، وعناوين العقود عبر CREATE2.

Keccak-256 مقابل SHA3-256

كانت Keccak-256 هي ما قدّمته Keccak إلى NIST قبل أن تصبح SHA3. غيّر المعيار النهائي قواعد الحشو، إذ كسبت تقنية multi-rate padding بتّين إضافيتين، فاختلفت مخرجات SHA3-256 وKeccak-256 لنفس المدخل. أبقت Ethereum على Keccak الأصلية لكي تتطابق التجزئات على السلسلة مع المحافظ والمفهرسين وأدوات الاستكشاف التي تستخدم Keccak-256 أيضًا.

أين تستخدمها Ethereum

محددات الدوال هي أول 4 بايتات من keccak256("transfer(address,uint256)") وما يماثلها من التوقيعات الكنسية. تشتق فتحات التخزين الخاصة بـ mapping من keccak256(abi.encode(key, slot)). يعتمد EIP-55 على keccak256 للعنوان بأحرف صغيرة لتقرير حالة الأحرف، وتُحسب عناوين العقود من CREATE2 بـ keccak256 فوق المُنشِر والملح والـ bytecode.

كيف يعمل التطبيق

تحمل الصفحة تطبيقًا مدمجًا لتبديل Keccak-f[1600] بلغة JavaScript، إذ لا توفّر Web Crypto هذه الخوارزمية. يمكنك التحقق بمقارنة موجز السلسلة الفارغة المعروف c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470. لا تغادر المدخلات والمخرجات هذه التبويبة.

الأسئلة الشائعة

هل Keccak-256 هي ذاتها SHA3-256؟
لا. Keccak-256 هي ما قدّمته Keccak إلى NIST، فيما أضافت SHA3-256 بتّين من الحشو قبل اعتمادها. المدخل ذاته يُنتج مخرجًا مختلفًا، وتستخدم Ethereum وEVM Keccak-256 الأصلية.
أين تظهر داخل Ethereum؟
في محددات الدوال، واشتقاق فتحات التخزين، واختبارات EIP-55، وعناوين CREATE2 الحتمية، ومعظم مخططات التوقيع التي تتطلب موجزًا بطول 256 بتًا.
كيف يمكنني التحقق من التطبيق؟
قِم بتجزئة السلسلة الفارغة وقارن النتيجة بـ c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470. أي اختلاف يدل على خطأ في الحشو أو الخوارزمية.
هل المخرجات حتمية لنفس المدخل؟
نعم. Keccak-256 دالة محضة، ويُنتج تسلسل البايتات UTF-8 ذاته نفس الموجز ذي 32 بايتًا بصرف النظر عن المتصفح أو الجلسة.
هل تسجّل Toova مدخلاتي؟
لا. تُحسَب التجزئة محليًا داخل هذه التبويبة، ولا تُرسَل السلسلة ولا الموجز إلى أي خادم.
هل يمكنني استخدامها لترميز ABI؟
احسب Keccak-256 للتوقيع الكنسي للدالة مثل transfer(address,uint256) — وهو ذاته البادئة المؤلفة من 4 بايتات التي تنتظرها المحددات — ثم خذ أول 4 بايتات من الناتج.