Hash fonksiyonu w / PHP tamsayı taşması

0 Cevap php

Ben "PHP tamsayı taşması" Burada bir sürü soru baktım ama benim özel soru cevaplar şey bulamıyor, bu yüzden ben varolan bir cevap cevapsız değil umuyoruz.

Ben bir shard tanımlayıcı (SimpleDB için etki alanı indeksi) gibi bir şey içine tuşları hash PHP djb2 karma işlevi (http://www.cse.yorku.ca/ ~ oz / hash.html) kullanmak istiyorum. Bu imzasız uzun İnts taşmaları, böylece PHP'nin ints 32-bitlik imzalı çünkü ben, düz PHP özdeş bunu yapamaz.

Yani PHP'nin bc ve keyfi uzunluğu izin libgmp matematik uzantıları, denedim, ve onlar işaretlilik / ölçek sorunu yuvarlak olsun, ama onlar "çok büyük" İnts - onlar taşma yok yani.

Özellikle eserlerinde GMP kullanarak ve tutarlı sonuçlar verir gibi görünüyor, ama açıkçası C (0m0.002s vs 0m0.017s) daha yavaş büyüklükte bir emirdir. Ben bunu taşmasına alabilir eğer PHP önemli ölçüde daha hızlı olacağını, C vs PHP çünkü bu basitçe olmadığını bilmek, ya da bilmiyorum. Ben oldukça test etmek ve öğrenmek, ama bunu gerçekleşmesi için bir yol göremiyorum ediyorum.

Yani, PHP bir ULONG maksimum zorlamak için herhangi bir yolu var mı? Ben belki bir PHP uzantısı C işlevi kaydırmak zorunda mıydı? Veya, sadece kısa-ish tuşları (muhtemelen 64 karakter veya daha az) karma planlıyorum verilen ciddiye azalan sağlamak istiyorsunuz?

Teşekkürler!

0 Cevap