Neden sadece kullanıcının kimliği ile göndermek için rastgele bir 64-bit sayı atamaz. , 64-bit sayısını alın 5-bitlik parçalar halinde onu kırmak, ve 32-karakter alfabeye dizin için her 5-bitlik bir yığın kullanın: 23456789ABCDEFGHJKLMNPQRSTUVWXYZ (elverişli 01IO atlama). 64-bitlik bir sayı ve (sonuncusu hariç) 5-bits/code ile 13 karakter sülük kullanıcıyı tanımlamak için kullanılacak olsun. İsterseniz 2 rasgele karakterler ile ped bunu 5 karakterden oluşan 3 grup vermek olabilir.
Id ve giriş url slug parçası olun. Onlar aynı olduğundan emin olmak için veritabanı kimliği ile saklanan külçenin değerini kontrol edin. Ben en çok amaçlar için bu tahmin etmek son derece zor yapmak için yeterince büyük bir değer olacağını düşünüyorum - sayı sonuçta rastgele - Hangi kullanıcı kimliği ile gider sümüklüböcek. Bir kriptografik güçlü rasgele sayı üreteci kullanarak, ben hatta herhangi bir kullanıcı için numaralarını tekrar olsun istiyorum ki son derece düşüktür olacağını düşünürdüm.
Bu gibi görünebilir:
http://example.com/activate?userid=bgates&validate=GY45M-RHQBN-32GYM
Bilinen değerler bir hash kullanarak aslında daha kolay birisi rastgele bir sayı kullanarak daha doğru kodu tahmin için yapmak olabilir. Bir karma birini kullanarak sadece çeşitli hash algoritmalar yoluyla bunları kullanarak ve çalıştırmak konum bitleri tahmin etmek vardır. Birisi Birlikte bu parçası için mümkün ise, bir kaç örnek verildi demek ve çeşitli kombinasyonları denemek için yeterli zaman, o zaman birinin kod çatlamak için yapmanız gereken belirli bir kişi için (muhtemelen) yaygın bilinen özelliklerini belirlemek ve kimliğine bürünmek için bu kullanmaktır onlara ve bir hesap oluşturun. Her birey atanan güçlü bir rasgele sayı ile sadece bir kaba kuvvet saldırısı ile kalacaksın.