Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
BLAKE3 — دالة تجزئة تشفيرية سريعة مع أوضاع PRF وMAC وKDF وXOF. تدعم التدفق المُتحقق منه، والتحديثات التزايدية، والتجزئة المتوازية عبر بنية شجرة ميركل. | Kitploit
أدوات/GitHubGitHub/blake3-team/blake3
أدوات التشفير/فك التشفيرتحليل التجزئةالتشفير
GitHubblake3-team/blake3

BLAKE3

دالة تجزئة تشفيرية سريعة مع أوضاع PRF وMAC وKDF وXOF. تدعم التدفق المُتحقق منه، والتحديثات التزايدية، والتجزئة المتوازية عبر بنية شجرة ميركل.

عرض المستودع
6.4k469منذ 0 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

BLAKE3

BLAKE3 هي دالة تجزئة تشفيرية تتميز بما يلي:

  • أسرع بكثير من MD5 وSHA-1 وSHA-2 وSHA-3 وBLAKE2.
  • آمنة، على عكس MD5 وSHA-1. وآمنة ضد تمديد الطول، على عكس SHA-2.
  • قابلة للتوازي بشكل كبير عبر أي عدد من الخيوط ومسارات SIMD، لأنها شجرة Merkle من الداخل.
  • قادرة على البث المُتحقق والتحديثات التدريجية، مرة أخرى لأنها شجرة Merkle.
  • دالة PRF وMAC وKDF وXOF، بالإضافة إلى كونها دالة تجزئة عادية.
  • خوارزمية واحدة بدون متغيرات، سريعة على x86-64 وعلى البنى الأصغر أيضًا.

يعد الرسم البياني أدناه مثالاً لمعيار أداء لمدخلات بحجم 16 كيلوبايت على معالج خادم Cascade Lake-SP 8275CL من عام 2019. للحصول على معايير أداء أكثر تفصيلاً، راجع ورقة BLAKE3.

رسم بياني للأداء

تعتمد BLAKE3 على مثيل مُحسّن من دالة التجزئة المعروفة BLAKE2 وعلى وضع شجرة Bao الأصلي. المواصفات والأساس المنطقي للتصميم متوفرة في ورقة BLAKE3. حجم الإخراج الافتراضي هو 256 بت. الإصدار الحالي من Bao يطبق البث المُتحقق مع BLAKE3.

هذا المستودع هو التنفيذ الرسمي لـ BLAKE3. يتضمن:

  • حزمة Rust blake3، والتي تتضمن تطبيقات مُحسّنة لـ SSE2 وSSE4.1 وAVX2 وAVX-512 وNEON وWASM، مع اكتشاف تلقائي لميزات وحدة المعالجة المركزية في وقت التشغيل على x86. توفر ميزة rayon تعدد الخيوط.

  • حزمة Rust b3sum، والتي توفر واجهة سطر أوامر. تستخدم تعدد الخيوط افتراضيًا، مما يجعلها أسرع بدرجة كبيرة من مثل sha256sum على الأجهزة المكتبية النموذجية.

  • تطبيق C، والذي مثل تطبيق Rust يتضمن تحسينات SIMD (الكل باستثناء WASM)، واكتشاف ميزات وحدة المعالجة المركزية على x86، وتعدد الخيوط الاختياري. راجع c/README.md.

  • تطبيق Rust المرجعي، والذي تمت مناقشته في القسم 5.1 من ورقة BLAKE3. هذا التطبيق أصغر وأبسط بكثير من التطبيقات المُحسّنة أعلاه. إذا كنت تريد رؤية كيفية عمل BLAKE3، أو كنت تكتب نسخة منقولة لا تحتاج إلى تعدد الخيوط أو تحسينات SIMD، ابدأ من هنا. استضافت نسخ منقولة من التطبيق المرجعي إلى لغات أخرى في مستودعات منفصلة (C، Python).

  • مجموعة من متجهات الاختبار تغطي المخرجات الموسعة، وجميع الأوضاع الثلاثة، ومجموعة متنوعة من أطوال الإدخال.

  • Actions Status

صمم BLAKE3 كل من:

  • @oconnor663 (Jack O'Connor)
  • @sneves (Samuel Neves)
  • @veorq (Jean-Philippe Aumasson)
  • @zookozcash (Zooko)

تم رعاية تطوير BLAKE3 من قبل Electric Coin Company.

BLAKE3 هي أيضًا محددة في مشروع مواصفات التشفير المجتمعي (C2SP).

ملاحظة: BLAKE3 ليست خوارزمية تجزئة كلمات مرور، لأنها مصممة لتكون سريعة، بينما يجب ألا تكون تجزئة كلمات المرور سريعة. إذا كنت تقوم بتجزئة كلمات المرور لتخزين التجزئات أو اشتقاق مفاتيح من كلمات المرور، نوصي باستخدام Argon2.

الاستخدام

أداة b3sum

أداة سطر الأوامر b3sum تطبع تجزئات BLAKE3 للملفات أو من الإدخال القياسي. الملفات الثنائية المجمعة مسبقًا متاحة لأنظمة Linux وWindows وmacOS (تتطلب حل المطور غير المعروف) على صفحة الإصدارات. إذا كنت قد قمت بتثبيت Rust وCargo، يمكنك أيضًا بناء b3sum بنفسك باستخدام:

root@kitploit:~
cargo install b3sum

إذا لم يقم rustup بتكوين متغير PATH لك، قد تحتاج إلى البحث عن الملف الثنائي المثبت في مثلاً ~/.cargo/bin. يمكنك اختبار مدى سرعة BLAKE3 على جهازك عن طريق إنشاء ملف كبير وتجزئته، على سبيل المثال:

root@kitploit:~
# Create a 1 GB file.
head -c 1000000000 /dev/zero > /tmp/bigfile
# Hash it with SHA-256.
time openssl sha256 /tmp/bigfile
# Hash it with BLAKE3.
time b3sum /tmp/bigfile

حزمة blake3 docs.rs

لاستخدام BLAKE3 من كود Rust، أضف تبعية على حزمة blake3 إلى ملف Cargo.toml الخاص بك. إليك مثال لتجزئة بعض بايتات الإدخال:

root@kitploit:~
// Hash an input all at once.
let hash1 = blake3::hash(b"foobarbaz");

// Hash an input incrementally.
let mut hasher = blake3::Hasher::new();
hasher.update(b"foo");
hasher.update(b"bar");
hasher.update(b"baz");
let hash2 = hasher.finalize();
assert_eq!(hash1, hash2);

// Extended output. OutputReader also implements Read and Seek.
let mut output = [0; 1000];
let mut output_reader = hasher.finalize_xof();
output_reader.fill(&mut output);
assert_eq!(hash1, output[..32]);

// Print a hash as hex.
println!("{}", hash1);

بالإضافة إلى hash، توفر BLAKE3 وضعين آخرين: keyed_hash وderive_key. وضع keyed_hash يأخذ مفتاحًا بطول 256 بت:

root@kitploit:~
// MAC an input all at once.
let example_key = [42u8; 32];
let mac1 = blake3::keyed_hash(&example_key, b"example input");

// MAC incrementally.
let mut hasher = blake3::Hasher::new_keyed(&example_key);
hasher.update(b"example input");
let mac2 = hasher.finalize();
assert_eq!(mac1, mac2);

وضع derive_key يأخذ سلسلة سياق وبعض المواد الرئيسية (ليست كلمة مرور). يجب أن تكون سلسلة السياق مشفرة بشكل ثابت، فريدة عالميًا، ومحددة بالتطبيق. تنسيق افتراضي جيد لسلسلة السياق هو "[application] [commit timestamp] [purpose]":

root@kitploit:~
// Derive a couple of subkeys for different purposes.
const EMAIL_CONTEXT: &str = "BLAKE3 example 2020-01-07 17:10:44 email key";
const API_CONTEXT: &str = "BLAKE3 example 2020-01-07 17:11:21 API key";
let input_key_material = b"usually at least 32 random bytes, not a password";
let email_key = blake3::derive_key(EMAIL_CONTEXT, input_key_material);
let api_key = blake3::derive_key(API_CONTEXT, input_key_material);
assert_ne!(email_key, api_key);

تطبيق C

راجع c/README.md.

تطبيقات أخرى

هناك العديد من التطبيقات المتاحة بحيث لا يمكننا متابعتها، لكن بعض أبرزها تشمل تطبيق Go مُحسّن، ارتباطات Wasm لـ Node.js والمتصفحات، عجلات ثنائية لـ Python، ارتباطات .NET، وتطبيق Java نقي.

المساهمة

يرجى الاطلاع على CONTRIBUTING.md.

التراخيص

هذا العمل متاح في المجال العام بموجب CC0 1.0. بدلاً من ذلك، يمكن ترخيصه بموجب أي من التراخيص التالية:

  • Apache 2.0
  • Apache 2.0 with LLVM exceptions

التبني والنشر

  • Bazel
  • Cargo
  • Ccache
  • Chia
  • Clickhouse
  • Farcaster
  • IPFS
  • Iroh
  • LLVM
  • Nix
  • Nym
  • OpenZFS
  • Redox
  • Solana
  • Tekken 8
  • Wasmer

متنوعات

  • أجرى @veorq و @oconnor663 مقابلة مع Cryptography FM.
  • أجرى @oconnor663 مقابلة مع Saito.
تنزيل الأداة