【C#】GUID の生成と書式 
2019/12/31 Tue [edit]
GUID の生成はググればすぐに出てくるのだが、生成されたオブジェクトは Guid 型なので、普段使うには文字型に変換して使うことが多い。
・Guid.NewGuid メソッド
幸いなことに文字列変換の Guid.ToString() には、いくつかのオーバーロードが定義されているので、利用方法は簡単だ。ただ「あれ?何を指定するんだっけ…?」とよく調べるので、メモ代わりに具体例を書いておくことにした(解説はマニュアル参照)。
・Guid.ToString(String)
●テストコード
using System;
Console.WriteLine("(): " + Guid.NewGuid().ToString());
Console.WriteLine("N : " + Guid.NewGuid().ToString("N"));
Console.WriteLine("D : " + Guid.NewGuid().ToString("D"));
Console.WriteLine("B : " + Guid.NewGuid().ToString("B"));
Console.WriteLine("P : " + Guid.NewGuid().ToString("P"));
Console.WriteLine("X : " + Guid.NewGuid().ToString("X"));
N : b11b80a4ebd54e19916d3de68cf6e548
D : f5f54a7d-b46b-4d99-a70c-dff3216f1766
B : {cc3e87ff-83a5-4eac-b465-e4b967173db7}
P : (8cc1037b-db1b-4bb0-969a-6af901719548)
X : {0xe49cb895,0xe333,0x4704,{0x81,0x25,0xa2,0x70,0x79,0x4e,0xf6,0xae}}
GUID はハッシュ値と違い、毎回変わるので、上の例はあくまでもその実行時の結果なので注意。
"()":引数無しと "D" は同じようだ。普段使うのは引数無し(or "D") か "N" (ハイフン無し)を使うことが多いだろう。
他は括弧囲み "()" だったり、中括弧 "{}" だったり、16進 "0x" だったりとなるだけだ。
GUID はセッションID や識別ID などによく使われる。内容的には以下の記事にあるように『GUID値とは、世界で重複することがない、ユニーク(=唯一)な128bit(16byte)のランダムな数値である。GUID値は必ずしも「絶対に同じID値が生成されないこと」を保証するものではないが、その数値の範囲が2の128乗、つまり「およそ3.4×(10の38乗)」(=340億の100兆倍の100兆倍)もあるので、現実的に同じIDが生成される可能性はきわめて低い。』というものだ。例えば、ブラウザやアプリなどで初めに生成→保存し、利用者を識別したりするのにも使われる(広告とか)。簡易的なユニークID として利用するにはもってこいだろう。
ちなみに、2128 = 340282366920938463463374607431768211456
(340澗2823溝6692穣938𥝱4634垓6337京4607兆4317億6821万1456) だそうだ(笑)。
・.NET TIPS GUID値を生成するには?
(関連記事)
【C#】MD5, SHA1, SHA256, SHA384, SHA512 等のハッシュ値を生成する
【Unity】【C#】文字列の暗号化・復号化を行う
- 関連記事
トラックバック
トラックバックURL
→http://fantom1x.blog130.fc2.com/tb.php/344-81a228d2
この記事にトラックバックする(FC2ブログユーザー)
| h o m e |