SORU
1 Kasım 2010, PAZARTESİ


Nasıl benzersiz uniqid?

Bu soru gerçekten bir sorun, çözüm arayışında değil, sadece basit bir merak meselesi. PHP uniqid fonksiyonu daha fazla entropi bir bayrağı vardır, çıkış yapmak için "daha özgün". Bu beni merak ediyor, ne kadar Olası bu işlev more_entropy doğru olduğunda aynı sonucu bir kez daha üretmek için, karşı değil ne zaman. Diğer bir deyişle, nasıl benzersiz more_entropy etkinleştirildiğinde, devre dışı bırakıldığında karşı uniqid? More_entropy her zaman etkin olması için herhangi bir dezavantajı var mı?

CEVAP
1 Kasım 2010, PAZARTESİ


Güncelleştirme, Mart 2014:

Öncelikle, önemli uniqid değil benzersiz bir KİMLİĞİ garanti gibi bir yanlış isim biraz olduğunu unutmayın.

PHP documentation: başına

UYARI!

Bu fonksiyon rastgele ne de öngörülemeyen dize oluşturmaz. Bu işlev, güvenlik amacıyla kullanılmamalıdır. Şifreli olarak kullanın güvenli rasgele işlev/jeneratör ve şifreli olarak güvenli karma öngörülemeyen güvenli KİMLİK oluşturmak için fonksiyonları.

Ve

Bu fonksiyon, şifreli olarak güvenli belirteçleri, oluşturmaz herhangi bir ek parametre olmadan aslında dönüş değeri küçük microtime() farklıdır. Eğer oluşturmak istiyorsanız şifreli olarak belirteçleri openssl_random_pseudo_bytes() kullanmak güvenli.


Gerçek daha-entropi ayarı daha benzersiz bir değer oluşturur, ancak yürütme zamanı daha uzun (gerçi küçük bir dereceye kadar), doktorlara göre

Eğer DOĞRU, uniqid ayarlayın (varsa) ek entropi katacak (kullanarak doğrusal congruential jeneratör) birlikte dönüş sonunda sonuç olasılığını artırır değeri, benzersiz olacaktır.

increases the likelihood that the result will be unique ve bu hattı unutmayıngarantiteklik.

'Sonsuz' teklik için, bir noktaya kadar gayret ve şifreleme rutinleri herhangi bir sayı kullanarak geliştirmek, salts ve ekleme amacına göre değişir gibi.

Ana PHP konudaki yorumlara bakarak, kesinlikle tavsiye ederim:

http://www.php.net/manual/en/function.uniqid.php#96898

http://www.php.net/manual/en/function.uniqid.php#96549

http://www.php.net/manual/en/function.uniqid.php#95001

Önerim çalışıyornedensen teklik lazım, güvenlik (yani bir şifreleme eklemek/çabalıyorlar rutin) için mi? Ayrıca,Nasılbenzersiz olmasına gerek var mı? Son olarak, hız göz önüne bak. Uygunluk temel konuları ile değişecek.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
Php

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Incredible Tutorials

    Incredible T

    27 EKİM 2006
  • MagicofRahat

    MagicofRahat

    13 Temmuz 2007
  • Mark Halberstadt

    Mark Halbers

    19 ŞUBAT 2010