-
Notifications
You must be signed in to change notification settings - Fork 74
/
Copy pathrandom-bytes.xml
143 lines (135 loc) · 4.26 KB
/
random-bytes.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: f08b9a8aee8330c248cd84b3f546391fedccd9f1 Maintainer: mumumu Status: ready -->
<refentry xml:id="function.random-bytes" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>random_bytes</refname>
<refpurpose>暗号学的にセキュアな、ランダムなバイト列を生成する</refpurpose>
</refnamediv>
<refsect1 role="description"><!-- {{{ -->
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>random_bytes</methodname>
<methodparam><type>int</type><parameter>length</parameter></methodparam>
</methodsynopsis>
<para>
等確率に選ばれるランダムなバイト列を含む、指定された長さ <parameter>length</parameter> の文字列を生成します。
</para>
<para>
返されるバイト列は完全にランダムに選ばれるため、
結果の文字列は印字できない文字や、
不正な UTF-8 のシーケンスとなる可能性があります。
よって、転送したり表示したりする時にはエンコードが必要かもしれません。
</para>
<para>
この関数が生成するランダムな値は、すべてのアプリケーションに対して適切です。
たとえば暗号化キーのような、長期間使うシークレットが挙げられます。
</para>
&csprng.sources;
&csprng.function.backport;
</refsect1><!-- }}} -->
<refsect1 role="parameters"><!-- {{{ -->
&reftitle.parameters;
<variablelist>
<varlistentry>
<term><parameter>length</parameter></term>
<listitem>
<para>
返すべきランダムな文字列の長さをバイト単位で指定します。
<literal>1</literal> 以上でなければなりません。
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1><!-- }}} -->
<refsect1 role="returnvalues"><!-- {{{ -->
&reftitle.returnvalues;
<para>
暗号学的にセキュアなランダムなバイト列を含んだ文字列を返します。
</para>
</refsect1><!-- }}} -->
<refsect1 role="errors"><!-- {{{ -->
&reftitle.errors;
<itemizedlist>
&csprng.errors;
<listitem>
<simpara>
不正な <parameter>length</parameter> が指定されると、
<classname>Error</classname> がスローされます。
</simpara>
</listitem>
</itemizedlist>
</refsect1><!-- }}} -->
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.2.0</entry>
<entry>
<acronym>CSPRNG</acronym> が失敗した場合に、
<classname>Random\RandomException</classname> をスローするようになりました。
これより前のバージョンでは、<classname>Exception</classname> をスローしていました。
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples"><!-- {{{ -->
&reftitle.examples;
<example xml:id="random-bytes.example.basic"><!-- {{{ -->
<title><function>random_bytes</function> の例</title>
<programlisting role="php">
<![CDATA[
<?php
$bytes = random_bytes(5);
var_dump(bin2hex($bytes));
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
string(10) "385e33f741"
]]>
</screen>
</example><!-- }}} -->
</refsect1><!-- }}} -->
<refsect1 role="seealso"><!-- {{{ -->
&reftitle.seealso;
<simplelist>
<member><function>Random\Randomizer::getBytes</function></member>
<member><function>random_int</function></member>
<member><function>bin2hex</function></member>
<member><function>base64_encode</function></member>
</simplelist>
</refsect1><!-- }}} -->
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->