TokenPhraseは可読性のあるユニークな文字列を生成するライブラリです。

Herokuでアプリを生成した際に何となくいい感じのサブドメイン名が生成されます。個人的にあれが結構好きなのですが、その実装とも言えるのがTokenPhraseです。

[![](http://images.moongift.jp/2013/01/Screenshot 2013-01-23 10.31.10_thumb.1358922658.png)](http://images.moongift.jp/2013/01/Screenshot 2013-01-23 10.31.10.1358922658.png)
ハイフンつなぎのトークンが生成されました。

[![](http://images.moongift.jp/2013/01/Screenshot 2013-01-23 10.31.13_thumb.1358922661.png)](http://images.moongift.jp/2013/01/Screenshot 2013-01-23 10.31.13.1358922661.png)
もう一度実行すればもちろん別な文字が出力されます。

[![](http://images.moongift.jp/2013/01/Screenshot 2013-01-23 10.31.48_thumb.1358922664.png)](http://images.moongift.jp/2013/01/Screenshot 2013-01-23 10.31.48.1358922664.png)
100回やれば全て異なる文字になります。

[![](http://images.moongift.jp/2013/01/Screenshot 2013-01-23 10.32.02_thumb.1358922669.png)](http://images.moongift.jp/2013/01/Screenshot 2013-01-23 10.32.02.1358922669.png)
セパレート文字は指定できます。

末尾の数字はシリアライズされている訳ではなく、1から100万の間のランダムとなっています。4.1兆のユニークな文字列が生成できるそうです。これだけランダムであれば大抵の用途には事足りるのではないでしょうか。

TokenPhraseはRuby製、MIT Licenseのオープンソース・ソフトウェアです。

MOONGIFTはこう見る

連続した数値を付与する問題点としては、次のデータを推測できてしまうというのがあります。そう考えるとランダムな文字を生成して使うのは良いことなのですが、ハッシュ値などは予想しづらい反面、覚えるのも難しいという難点があります。

ある程度意味がありそうな文字列を生成するという点においてTokenPhraseはユニークです。読める単語であれば区別するくらいには役立つでしょう。完全なハッシュ値と数値との中間に当たるような面白い手法です。

genericsteele/token_phrase · GitHub