After hours i created this: (javastript for testing)
It's looks like random but isn't
- char_keys contains 8 rows with 60 unique chars
- helper_arr contains digits from id - function param (in reverse order) "5342" => [2,4,3,5]
- it can create 100 000 000 unique keys (with many combinations), but now i working to upgrade this (different key long)
Random generate works like this:
- for example helper_arr = [1,2,3,4,5];
- key is a generated string key
helper_arr[0] = 1, so:
- key[0] = char_keys[1].substr(0,1), or
- key[0] = char_keys[1].substr(10,11), or
- key[0] = char_keys[1].substr(20,21), or
- key[0] = char_keys[1].substr(30,31), or
- key[0] = char_keys[1].substr(40,41), or
- key[0] = char_keys[1].substr(50,51), or
- key[0] = char_keys[1].substr(60,61).
(this is the only random thing ;) )
test = function(id){
var char_keys = [
'123456789',//only numbers here because it's random, users can create own links without number on first char
'LwFhy7YuEWGMH1IvoU85Jbjpkx4qN6zBmf9KtercZdQiRln2CSDXaVg3T0Ps',
'GTxkHtjXbB08ZWYqyiIu2agvdAlVFM6ShQznEcJrm47pU5sCLKfNP9eow1R3',
'8QEmj3LeRdWuKsJngiBySf1Xz6wpVZ0Nkv2GFPHah7UMqAboYtlcT9rCx4D5',
'G5QdYeSl0LFBjJAHCD1xnmU9VfZRi6MX2PcwsaKoqT8p3vtNhWz7u4ybgrEI',
'j7fCcZNF6ytv58KUET1BAiMR2JqH0eIadrhQzug9kbmDnPSGLo4xXVlWpY3s',
'PyAMjsiox86zZ1vYCDwETm5SQlGK9b0rLJNV2aFtgXe4cW7IhqUpRfH3unBk',
'h04edQN2c89xVSiCMBlw3LksWEKaUguGj6mDIvTJfRpPH1AozZyYnFrq75tX',
'9YD82VBwJ0PrIUNG5Sx4dHX6vz1kZgWaRs7plFhfAuojytqbiCmQcKMeL3nT'
];
var id = id;
var tmp = 0;
var helper_arr = [];
while(id>0){
tmp = Math.floor(id/10);
if(tmp==0) {helper_arr.push(id-(tmp*10)); break;}
helper_arr.push(id-(tmp*10)+1);
id=tmp;
}
var key = char_keys[0].substr(getRandomInt(0,8),1);
for(i=1;i<helper_arr.length;i++){
key += char_keys[i].substr((getRandomInt(1,6)*helper_arr[i])-1,1);
}
for(i=helper_arr.length;i<char_keys.length;i++){
key += char_keys[i].substr((getRandomInt(1,6)*1)-1,1);
}
return(key);
}