unknownplace.org

前の日 | 最新のメモ | 次の日

# 2008-02-08

ユニークなランダム文字列

すでに生成したIDかどうかを気にする必要がないユニークな文字列を作成しようとした場合

use Data::UUID;
use MIME::Base64::URLSafe;

print urlsafe_b64encode( Data::UUID->new->create );

こんな感じにやるのがいいのかなぁ。これで22文字。

んー。

エントリーのURLとかにつかいたくてもう少し短くしたいけど、文字列生成したときに重複してないか調べるためにDBを引くというのがイヤダナー。


comments

daydream.trippers says:

エントリーのURLにつかいたくて,ということであれば,
http://www.ietf.org/rfc/rfc4122.txt
node の部分はいらないかと思います。
なので,
urlsafe_b64encode( substr Data::UUID->new->create, 0, 10 );
とか(15文字)。未検証ですが。

もし複数のマシンで生成するとかであれば node もいりますが。

Posted at 2008-02-08T18:09:55 ( permalink )

typester says:

なるほど、そうかそうですね。
ありがとうございます!

Posted at 2008-02-08T18:41:59 ( permalink )