2012-04-25 6 views
2

私はUUID v4について読んでいて、それは事実上ユニークで、それが私の必要なものです。問題は、あまりにも多いのですが、FacebookやTwitterのようなUUIDを少数のキャラクターで生成することは可能でしょうか?短いUUID、PHPを使ったASCII85

私はAscii85でこのコードを20に縮小することができるポストを読んだが、信頼できるPHPスクリプトがその仕事をしているのを見ていない。誰かがテスト済みのクラスを知っていますか?ランダムなIDのために、これを20文字保存するのが最善の方法でしょうか?

---編集---

@デビッド・シュワルツ

感謝。 1つのサーバーに8から16文字の間でランダムな一意の識別子が必要です(okの場合は20が問題ありません)。アイデアは、読み込み可能なIDではなくインクリメンタルではないオブジェクト(最初のobjet 10001、second 10002)、way 542A4B243J、C63426KJ70、O30V4U1I9Pなどのオブジェクトを識別するアイデアです。 IDは少なくとも(少なくとも)6つのMySQLテーブルのプライマリキーである必要があります。 Objetsは同じサーバーにPHPで作成されます。私が書いたta.speot.is

@

「信頼性の高いPHPスクリプトが仕事をして見ませんが。誰かがテストされ、クラスを知っています?」私はすべてのコードがGoogleに表示されるとは思わない、多分あなたはすべてのリンクをテストしてもらえますか?

@sarnold

おかげで、私は申し訳ありませんが、(=良く

+4

便利な回答を得るには、要件を詳しく説明する必要があります。たとえば、多数の完全に調整されていない場所からIDを生成し、それらを一意にする必要がありますか?または、各ID割り当て担当者にプレフィックスを割り当てて、問題をローカルで一意のIDにすることができますか?彼らは州を救うことができ、彼らが中断した場所を拾うことができるかそれとも純粋にランダムでなければならないのですか?それは時間に基づくことができますか?等々。 –

+0

http://www.google.com.au/search?rlz=1C1_____enAU376AU376&sourceid=chrome&ie=UTF-8&q=php+ascii85 –

+0

あなたのUUIDを36バイトの「通常のスタイル」から「整数」に変換することを忘れないでください。 '0'-' 2^128-1 'の範囲では、必ずしも128ビット整数で作業する必要はありませんが、少なくとも128ビットのように適切な4バイトのチャンクで入力を処理する必要があります長いです。 – sarnold

答えて

0

を理解していなかった私は、私が働いていたエンタープライズプロジェクトのために同じ問題に直面し、私は合理的に見つけることができませんでした。テストされ、PHPで高速なソリューションだから私は、エンコードするために使用することができますPHP拡張モジュール/ base85/ASCII85とデコードデータを書き込むことにしました

あなたがここにそれをチェックアウトすることができます。これは、使用してテストされhttps://github.com/miezuit/php-base85

自動テストのセットs。