يعد Wyhash و Wyrand وظيفة تجزئة 64 بت المثالية و PRNG على التوالي:
الصلبة : مرت Wyhash Smhasher ، مرت Wyrand Bigcrush ، Practrand.
المحمول : نظام 64 بت/32 بت ، كبير/صغير إنديان.
أسرع : كفاءة على آلات 64 بت ، وخاصة للمفاتيح القصيرة.
أبسط : بمعنى حجم الكود.
المملح : نستخدم السر الديناميكي لتجنب الهجوم المقصود.
Wyhash هي خوارزمية التجزئة الافتراضية للغة العظيمة ، V ، NIM و GO (منذ 1.17). أحد المعالم البارزة هو أن Wyhash قد نشرها Microsoft على [Windows Terminal] (Microsoft/Terminal#13686).
مثال بسيط:
#include "wyhash.h"
uint64_t _wyp[4];
make_secret(time(NULL),_wyp);
string s="fcdskhfjs";
uint64_t h=wyhash(s.c_str(),s.size(),0,_wyp);
القيود:
من المعروف الآن أن Wyhash/Wyrand لها حدودها:
كلاهما ليسا مقاومًا للتصادم 64 بت ، ولكن حوالي 62 بت (FlyingMutant/Cyan4973/Vigna)
عند اختبار مجموعة البيانات الطويلة (32 تيرابايت ، 23 يومًا) ، سيفشل ويراند براكتراند (Vigna)
وقد يكون هناك المزيد من العيوب التي تم اكتشافها في المستقبل.
يجب على المستخدم اتخاذ قراره الخاص على ميزة وعيوب Wyhash/Wyrand لأن لا أحد مثالي.
C# https://github.com/cocowalla/wyhash-dotnet
C ++ https://github.com/tommyettinger/waterhash
C ++ https://github.com/alainesp/wy
اذهب https://github.com/dgryski/go-wyhash
اذهب https://github.com/orisano/wyhash
اذهب https://github.com/littleli/GoWyhash16
اذهب https://github.com/zeebo/wyhash
اذهب https://github.com/lonewolf3739/wyhash-go
Go https://github.com/zhangyunhao116/wyhash (الإصدار النهائي 1 && 3)
java https://github.com/openhft/zero-alocation-hashing
Java https://github.com/dynatrace-oss/hash4j (الإصدار النهائي 3 و 4)
Kotlin multiplatform https://github.com/appmattus/crypto/tree/main/cryptohash
nim https://github.com/nim-lang/nim/blob/devel/lib/pure/hashes.nim
nim https://github.com/jackhftang/wyhash.nim
nim https://github.com/littleli/nim-wyhash16
Rust https://github.com/eldruin/wyhash-rs
Swift https://github.com/lemire/swiftwyhash
Swift https://github.com/lemire/swiftwyhashbenchmark
Swift https://github.com/jeudesprits/pswyhash
v https://github.com/vlang/v/tree/master/vlib/hash/wyhash (v4)
zig https://github.com/mandejan/zig-wyhash
absl hashmap https://github.com/abseil/abseil-cpp/blob/master/absl/hash/internal/low_level_hash.h
أشكر هذه الأسماء:
رايري الحضرية
ديتريش إيب
جوشوا هابرمان
تومي إيتنجر
دانييل ليمير
Otmar ertl
كوكوفالا
ليو يورييف
دييغو باريوس روميرو
Paulie-G
Dumblob
يان كوليت
IVTE-MS
هيب
جيمس زم قاو
easyaspi314 (ديفين)
ثيونريك
flyingmutant
فينا
تانسي