Vb benzersiz değerleri oluşturmak için sadece 3 yolu, daha doğrusu onlar şifreleri olması, kullanıcı kimlikleri vardır:
- Etkili bir GUID jeneratör kullanın - bu uzun ve çekmiş olamaz. Eğer sadece bir kısmını kullanıyorsanız you FAIL.
- Sayısının en azından bir kısmı ardışık olarak tek bir dizi kapalı oluşturulur. Bunu az sıralı görünmesi için kabartmak veya kodlamayı ekleyebilirsiniz. Avantajı, kısa başlayın - dezavantajı tek bir kaynağı gerektirir olduğunu. Tek bir kaynak sınırlaması için etrafında çalışma kaynakları numaralandırılmış olması, böylece [kaynak #] + [seq #] ve sonra her kaynak kendi dizisine üretebilir içerir.
- Diğer bazı yollarla onları oluşturmak ve daha sonra önceden oluşturulan değerlerin tek tarihine karşı onları kontrol edin.
Başka bir yöntem garanti edilmez. Unutmayın, temelde ikili bir sayı (bir bilgisayar) üreten, ama sonra onaltılık, onluk, Base64, ya da bir sözcük listede kodlamak. Kullanımınızı uygun bir kodlama seçin. Genellikle kullanıcı girilen veriler için (sen ima) Base32 bazı varyasyon istiyorum.
Note about GUIDS: Onlar kendi uzunluğundan teklik gücünü ve bunları oluşturmak için kullanılan yöntem kazanırlar. Anything less than 128-bits is not secure. rasgele sayı üretimi ötesinde daha benzersiz yapmak için bir GUID gitmek özellikleri vardır. Tamamen özgün, sadece pratik olarak benzersiz değildir unutmayın. Pratik olarak imkansız bir kopyasını olması rağmen, mümkündür.
Updated Note about GUIDS: Bu yazı bu yana birçok GUID jeneratörler şifreli olarak güvenli rasgele sayı üreteci (zor veya imkansız oluşturulan bir sonraki sayıyı tahmin etmek, ve tekrar bir olası değil) kullanın öğrendim. 5 farklı UUID algorithms aslında vardır. Algoritma 4 Microsoft şu anda Windows GUID nesil API için kullandığı şeydir. A GUID UUID standardının Microsoft'un uygulamasıdır.
Update: Eğer 7-16 karakter istiyorsanız o zaman yöntem 2 ya da 3 ya da kullanmak gerekir.
Bottom line: Açıkçası gibi tamamen benzersiz bir şey yoktur. Eğer sonunda kendinizi geri döngü ve yinelenen dolayısıyla, evrendeki tüm atomlar kullanılarak depolama tükendi sıralı bir jeneratör ile gitti bile. Sizin tek umut bu noktaya ulaşmadan önce evrenin ısı ölümü olurdu.
Hatta en iyi rasgele sayı jeneratör üreten rasgele sayının toplam boyutuna eşit yinelenen bir olasılık var. Örneğin dörtte al. Tamamen rastgele bit jeneratör ve yinelenen onun oran 2'de 1.
Yani hepsi aşağı teklik senin eşiğine gelir. Bunu bir diziyi kullanarak ve ardından base32 kodlama tarafından 1.099.511.627.776 numaraları için 8 haneli 100% teklik olabilir. Geçmiş numaralarının bir listesini karşı kontrol içermeyen herhangi bir başka yöntem yalnızca n / 1.099.511.627.776 eşit oran vardır (burada üretilen önceki sayıların n = sayı) benzersiz olmak değil.