File: mhash.xml

package info (click to toggle)
phpdoc 20020310-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 35,272 kB
  • ctags: 354
  • sloc: xml: 799,767; php: 1,395; cpp: 500; makefile: 200; sh: 140; awk: 51
file content (308 lines) | stat: -rw-r--r-- 9,261 bytes parent folder | download
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.3 $ -->
 <reference id="ref.mhash">
  <title>Mhash Functions</title>
  <titleabbrev>mhash</titleabbrev>
  
  <partintro>
   <para>
    Estas funes tem a inteno de funcionar com
    <ulink url="&url.mhash;">mhash</ulink>.</para>
   <para>
    Esta  uma interface para a biblioteca mhash. mhash suporta
    uma grande variedade de algoritmos hash como MD5, SHA1, GOST e
    vrios outros.
   </para>
   <para>
    Para usalas, faa o download da distribuio mhash do <ulink
    url="&url.mhash;">web site deles</ulink> e siga as instrues
    de instalao inclusas. Voc precisar compilar o PHP com o
    parametro <option role="configure">--with-mhash</option> para
    habilitar esta extenso.
   </para>
   <para>
    Mhash pode ser usado para criar checksums, message digests, cdigos
    de autenticao e mais.
   </para>
   <para>
    <example>
     <title>Computar o MD5 digest e hmac e imprimir como hex</title>
     <programlisting role="php">
<![CDATA[
<?php
$input = "o que voc quer por nada?";
$hash = mhash (MHASH_MD5, $input);
print "A hash  ".bin2hex ($hash)."\n&lt;br>";
$hash = mhash (MHASH_MD5, $input, "Jefe");
print "A hmac  ".bin2hex ($hash)."\n&lt;br>";
?>
]]>
     </programlisting>
     <para>
      Este cdigo ir produzir:
      <screen>
<![CDATA[
A hash  d03cb659cbf9192dcd066272249f8412 
A hmac  750c783e6ab0b503eaa86e310a5db738 
]]>
      </screen>
     </para>
    </example>
    Para uma lista completa de hashes suportadas, refira-se para a
    documentao do mhash. A regra geral  que voc pode acessar o
    algoritmo hash do PHP com MHASH_HASHNAME. Por exemplo, para
    accessar TIGER se usa a constante do PHP MHASH_TIGER.
   </para>
   <para>
    Aqui est a lista de hashes que so atualmente suportadas por mhash.
    Se uma hash no est listada aqui, mas  listada por mhash como
    suportada, voc pode com seguranca presumir que esta documentao est
    desatualizada.
    <itemizedlist>
     <listitem>
      <simpara>
       MHASH_MD5
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       MHASH_SHA1
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       MHASH_HAVAL256
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       MHASH_HAVAL192
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       MHASH_HAVAL160
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       MHASH_HAVAL128
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       MHASH_RIPEMD160
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       MHASH_GOST
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       MHASH_TIGER
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       MHASH_CRC32
      </simpara>
     </listitem>
     <listitem>
      <simpara>
       MHASH_CRC32B
      </simpara>
     </listitem>
    </itemizedlist>
   </para>
  </partintro>
  
  <refentry id="function.mhash-get-hash-name">
   <refnamediv>
    <refname>mhash_get_hash_name</refname>
    <refpurpose>Ler o nome da hash especificada</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descrio</title>
     <methodsynopsis>
      <type>string</type><methodname>mhash_get_hash_name</methodname>
      <methodparam><type>int</type><parameter>hash</parameter></methodparam>
     </methodsynopsis>
    <para>
     <function>mhash_get_hash_name</function>  usada para obter o nome
     da hash especificada.
    </para>
    <para>
     <function>mhash_get_hash_name</function> recebe a id da hash como um
     argumento e retorna o nome da hash ou &false;, se a hash no existe.
    </para>
    <para>
     <example>
      <title>Exemplo do <function>mhash_get_hash_name</function></title>
      <programlisting>
<![CDATA[
<?php
$hash = MHASH_MD5;

print mhash_get_hash_name ($hash);
?>
]]>
      </programlisting>
      <para>
       O exemplo acima ir imprimir:
       <screen>
<![CDATA[
      MD5
]]>
       </screen>
      </para>
     </example>
    </para>
   </refsect1>
  </refentry>
  
  <refentry id="function.mhash-get-block-size">
   <refnamediv>
    <refname>mhash_get_block_size</refname>
    <refpurpose>Ler o tamanho do bloco da hash especficada</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descrio</title>
     <methodsynopsis>
      <type>int</type><methodname>mhash_get_block_size</methodname>
      <methodparam><type>int</type><parameter>hash</parameter></methodparam>
     </methodsynopsis>
    <para>
     <function>mhash_get_block_size</function>  usada para obter o
     tamanho de um blobo da <parameter>hash</parameter> especficada.
    </para>
    <para>
     <function>mhash_get_block_size</function> recebe um argumento, a
     <parameter>hash</parameter> e retorna o tamanho em bytes ou
     &false;, se o parametro <parameter>hash</parameter> no existe.
    </para>
   </refsect1>
  </refentry>
  
  <refentry id="function.mhash-count">
   <refnamediv>
    <refname>mhash_count</refname>
    <refpurpose>Ler o mais alto hash id disponvel</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descrio</title>
     <methodsynopsis>
      <type>int</type><methodname>mhash_count</methodname>
      <void/>
     </methodsynopsis>
    <para>
     <function>mhash_count</function> retorna a mais alta hash id disponvel.
     As hashes so numeradas de 0 at esta hash id.
    </para>
    <para>
     <example>
      <title>Listando todas as hashes</title>
      <programlisting role="php">
<![CDATA[
<?php

$nr = mhash_count();

for ($i = 0; $i <= $nr; $i++) {
    echo sprintf ("O tamanho do bloco de %s  %d\n", 
        mhash_get_hash_name ($i),
        mhash_get_block_size ($i));
}
?>
]]>
      </programlisting>
     </example>
    </para>
   </refsect1>
  </refentry>
    
  <refentry id="function.mhash">
   <refnamediv>
    <refname>mhash</refname>
    <refpurpose>Computar a hash</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descrio</title>
     <methodsynopsis>
      <type>string</type><methodname>mhash</methodname>
      <methodparam><type>int</type><parameter>hash</parameter></methodparam>
      <methodparam><type>string</type><parameter>data</parameter></methodparam>
      <methodparam><type>string</type><parameter>[ key ]</parameter></methodparam>
     </methodsynopsis>
    <para>
     <function>mhash</function> applica a funo hash especificada por
     <parameter>hash</parameter> para o parametro <parameter>data</parameter>
     e retorna a hash resultante (tambm chamada de digest). Se a
     <parameter>key</parameter> for especificada a funo ir retornar o
     HMAC resultante. HMAC  o hashing com chave (keyed) para autenticaes
     de mensagens, ou simplesmente um digest de mensagens que depende na
     chave (key) especficada. Nem todos os algortmos suportados em mhash
     podem ser usados em modo HMAC. Em caso de erro retorna &false;.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.mhash-keygen-s2k">
   <refnamediv>
    <refname>mhash_keygen_s2k</refname>
    <refpurpose>Gerar uma chave</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descrio</title>
     <methodsynopsis>
      <type>string</type><methodname>mhash_keygen_s2k</methodname>
      <methodparam><type>int</type><parameter>hash</parameter></methodparam>
      <methodparam><type>string</type><parameter>password</parameter></methodparam>
      <methodparam><type>string</type><parameter>salt</parameter></methodparam>
      <methodparam><type>int</type><parameter>bytes</parameter></methodparam>
     </methodsynopsis>
    <para>
     <function>mhash_keygen_s2k</function> gera um chave que tem
     <parameter>bytes</parameter> de comprimento, apartir de uma
     senha (password) do usurio. Este  o algoritmo Salted S2K
     como especificado no documento OpenPGP (RFC 2440). Este 
     algoritmo usar o algoritmo <parameter>hash</parameter> 
     para criar a chave. O <parameter>salt</parameter> deve ser
     diferente e aleatrio o suficiente para que cada chave que
     voc gere seja diferente. Este salt tem que ser sabido quando
     voc checar as suas chaves (keys), logo  uma boa ideia
     que a chave siga o salt. O salt tem o comprimento fixo de 8
     bytes e ser completado com zeros se voce fornecer menos bytes.
     Tenha em mente que as senhas fornecidas pelos usurios no so
     boas para serem usadas como chaves em algoritmos criptogrficos,
     pois usurios normalmente escolhem chaves que eles podem escrever
     no teclado. Estas senhas usam somente 6 a 7 bits por caracter
     (ou menos).  altamente recomendado usar algum tipo de 
     transformao (como esta funo) na chave dada pelo usurio.
    </para>
   </refsect1>
  </refentry>

 </reference> 

<!-- 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
sgml-parent-document:nil
sgml-default-dtd-file:"../../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
-->