0

YouTubeと同じようなことをしたいと思っています。たとえば、これは有効な YouTube 動画 ID です didzxUkrtS0

現在、ユーザーの ID を整数で保存しています。これらの番号を 8 文字の英数字 ID に変換したいと考えています。例: FZ3EY1IC(16 進数ではない)

MD5 を使用して実装し、最初の 8 つの 16 進数を取得できることは既に知っていますが、アルファベット全体をカバーしているわけではありません。

繰り返してはならない、整数を使用した一意のパターンを作成するにはどうすればよいですか?

4

2 に答える 2

0

整数を 5 8 ビット バイトの長さにします (整数が 32 ビットの場合は、ランダムな値でバイトを追加します)。これは 40 ビットのデータです。

おそらく非公開にしたいキーを使用して、5 バイトの整数を暗号化します。

暗号化された 40 ビットを 8 つの 5 ビット部分にスライスします。32 文字の英数字を使用して各部分をエンコードします。パーツごとに異なる 32 (合計 36 のうち) の文字を使用することを選択できます。

逆の操作は簡単です。

于 2013-04-16T04:52:56.903 に答える
0

youtube や bitly のようなサイトがデータベースに大きなテーブルを保存し、各リンクの英数字の識別子を目的の内部 ID に変換することは確かです (それまたは行に保存されます)。新しい識別子が必要な場合は、ランダムな識別子を計算して保存します。これを行う必要があるのは、攻撃者が次に追加されるコンテンツの ID を予測できないようにするためです。

于 2013-04-16T04:41:54.270 に答える