ユーザーがボタンを押すと一意の5文字の値が返されるImgurに似た保存システムを実装したいと思います。これが私がこれまでに持っているものです:
データベースバックエンドは、で始まる自動インクリメントIDを使用します5308416
。これらの数値IDを文字に変換するために、変更された基数関数(以下を参照)を使用します。逆関数を使用して、文字IDを数値データベースIDに戻します。
function genID (value)
{
var alphabet = "23456789BCDFGHJKLMNPRSTVWXYZbcdfghjkmnpqrstvwxyz";
var result = "";
var length = alphabet.length;
while (value > 0)
{
result = alphabet[value % length] + result;
value = Math.floor (value / length);
}
return result;
}
問題は、これらの生成されたIDが非常に予測可能であるということです。私の質問は、生成されたIDをランダムに見えるが、それでも一意に見えるようにするにはどうすればよいですか(データベースで番号として検索できるようにするため)。暗号化アルゴリズムを使用することを考えていましたが、どこから始めればよいかわかりませんでした。任意のヘルプや提案をいただければ幸いです(おそらくこれを行うためのより良い方法もあります)。