guid_new_bytes
新しいGUID(UUID)を生成し、その値を格納する16バイトのバイト配列を取得します。
定義¶
名前空間: Alice.Random
アセンブリ: Losetta.Runtime.dll
ソースコード: Alice.Random.cs
guid_new_bytes()¶
新しいGUID(UUID)を生成し、その値を格納する16バイトのバイト配列を取得します。
戻り値 | |
---|---|
bytes |
新しいGUIDの値を格納する16バイトのバイト配列。 |
対応 | |
---|---|
AliceScript | RC1、RC2、GM、2.0、2.1、2.2、2.3、3.0、4 |
AliceSister | GM、2.0、2.1、2.2、2.3、3.0、4 |
Losetta | 0.8、0.9、0.10、0.11 |
説明¶
この関数は、RFC4122 Sec.4.4に準拠したUUIDv4を作成します。
使用するSAIMの実装がAliceSisterであるかAliceScriptかLosettaを実行する環境がWindowsの場合、この関数はWindowsAPIのCoCreateGuid関数をラップします。
LosettaのWindows以外向けのバージョンでは、この関数は暗号学的に安全な疑似乱数ジェネレーター(CSPRNG)を呼び出してGUIDを生成します。AliceScriptのWindows向け以外のバージョンでは、GUIDが暗号学的に安全な方法で生成されるとは限りません。
この関数が生成する値は、暗号学的には安全ではありません。 たとえば、UUIDv4には、一部に予測可能なビットパターンがあります。 ほかにも、GUIDを生成する際に使用するエントロピーは、プラットフォームに関係なく最大122ビットですが、多くの暗号学的に安全とされるアルゴリズムではこのエントロピーは128ビット以上のものを使用します。暗号学的に安全な入力が求められている関数やAPIにこの値を渡すと、ポリシーに違反するとともに、信用を損なうことがあります。 そのため、これを暗号や、推測できないことが期待される値として使うことはできません。
暗号学的に安全な乱数が必要な場合は、random_intかrandom_bytes関数を使用することを検討してください。
例¶
次の例では、GUIDの長さを表示します。