Bu NOT PHP ama php ya da Javascript ve olduğu gibi dönüştürülebilir böylece php benzersiz bir id ihtiyacı ne olursa olsun yayınlamak gibi .. o kullanılabilecek sunucu yavaşlaması gerek kalmadan clinetside.
Burada sınırlı eşsiz kimlikleri oluşturmak için bir yoldur
9 007 199 254 740 992 unique id's
o zaman 9 charachters döndürür.
burada iE2XnNGpF
olan 9 007 199 254 740 992
You can encode a long Number
and then decode the 9char generated String
and it returns the number.
basically this function uses the 62base index Math.log() and Math.Power to get the right index based on the number.. i would explain more about the function but ifound it some time ago and can't find the site anymore and it toke me very long time to get how this works... anyway i rewrote the function from 0.. and this one is 2-3 times faster than the one that i found.
i looped through 10million checking if the number is the same as the enc dec process and it toke 33sec with this one and the other one 90sec.
var UID={
ix:'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
enc:function(N){
N<=9007199254740992||(alert('OMG no more uid\'s'));
var M=Math,F=M.floor,L=M.log,P=M.pow,r='',I=UID.ix,l=I.length,i;
for(i=F(L(N)/L(l));i>=0;i--){
r+=I.substr((F(N/P(l,i))%l),1)
};
return UID.rev(new Array(10-r.length).join('a')+r)
},
dec:function(S){
var S=UID.rev(S),r=0,i,l=S.length,I=UID.ix,j=I.length,P=Math.pow;
for(i=0;i<=(l-1);i++){r+=I.indexOf(S.substr(i,1))*P(j,(l-1-i))};
return r
},
rev:function(a){return a.split('').reverse().join('')}
};
I de s '0
olarak oluşturulan dize s' a
ekli 9 karakter dizesi istedim.
Bir sen bir Number
geçmek gerekiyor numarası ve bir dize kodlamak.
var uniqueId=UID.enc(9007199254740992);
Tekrar sayıları çözmek için, String
oluşturulan 9char geçmesi gerekiyor
var id=UID.dec(uniqueId);
burada bazı sayılar
console.log(UID.enc(9007199254740992))//9 biliardi o 9 milioni di miliardi
console.log(UID.enc(1)) //baaaaaaaa
console.log(UID.enc(10)) //kaaaaaaaa
console.log(UID.enc(100)) //Cbaaaaaaa
console.log(UID.enc(1000)) //iqaaaaaaa
console.log(UID.enc(10000)) //sBcaaaaaa
console.log(UID.enc(100000)) //Ua0aaaaaa
console.log(UID.enc(1000000)) //cjmeaaaaa
console.log(UID.enc(10000000)) //u2XFaaaaa
console.log(UID.enc(100000000)) //o9ALgaaaa
console.log(UID.enc(1000000000)) //qGTFfbaaa
console.log(UID.enc(10000000000)) //AOYKUkaaa
console.log(UID.enc(100000000000)) //OjO9jLbaa
console.log(UID.enc(1000000000000)) //eAfM7Braa
console.log(UID.enc(10000000000000)) //EOTK1dQca
console.log(UID.enc(100000000000000)) //2ka938y2a
As you can see there are alot of a
's and you don't want that... so just start with a high number.
let's say you DB id is 1 .. just add 100000000000000
so that you have 100000000000001
ve benzersiz id YouTube'un id benziyor 3ka938y2a
i diğer 8907199254740992
benzersiz id yerine getirmek kolay olduğunu sanmıyorum