<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.mcrypt.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'en',
  ),
  'this' => 
  array (
    0 => 'function.mcrypt-create-iv.php',
    1 => 'mcrypt_create_iv',
    2 => 'Creates an initialization vector (IV) from a random source',
  ),
  'up' => 
  array (
    0 => 'ref.mcrypt.php',
    1 => 'Mcrypt Functions',
  ),
  'prev' => 
  array (
    0 => 'ref.mcrypt.php',
    1 => 'Mcrypt Functions',
  ),
  'next' => 
  array (
    0 => 'function.mcrypt-decrypt.php',
    1 => 'mcrypt_decrypt',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'en',
    'path' => 'reference/mcrypt/functions/mcrypt-create-iv.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.mcrypt-create-iv" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">mcrypt_create_iv</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7 &lt; 7.2.0, PECL mcrypt &gt;= 1.0.0)</p><p class="refpurpose"><span class="refname">mcrypt_create_iv</span> &mdash; <span class="dc-title">Creates an initialization vector (IV) from a random source</span></p>

 </div>

 <div id="function.mcrypt-create-iv-refsynopsisdiv">
  <div class="warning"><strong class="warning">Warning</strong>
   
<p class="para">
 This function was <em>DEPRECATED</em> in PHP 7.1.0, and
 <em>REMOVED</em> in PHP 7.2.0.
</p>
<p class="para">
 Alternatives to this function include:
</p>

   <ul class="simplelist">
    <li><span class="function"><a href="function.random-bytes.php" class="function">random_bytes()</a></span></li>
   </ul>
  </div>
 </div>

 <div class="refsect1 description" id="refsect1-function.mcrypt-create-iv-description">
  <h3 class="title">Description</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>mcrypt_create_iv</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$size</code></span>, <span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$source</code><span class="initializer"> = MCRYPT_DEV_URANDOM</span></span>): <span class="type"><a href="language.types.string.php" class="type string">string</a></span></div>

  <p class="simpara">
   Creates an initialization vector (IV) from a random source.
  </p>
  <p class="simpara">
   The IV is only meant to give an alternative seed to the encryption
   routines. This IV does not need to be secret at all, though it can be
   desirable. You even can send it along with your ciphertext without
   losing security.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.mcrypt-create-iv-parameters">
  <h3 class="title">Parameters</h3>
  <dl>
   
    <dt><code class="parameter">size</code></dt>
    <dd>
     <span class="simpara">
      The size of the IV.
     </span>
    </dd>
   
   
    <dt><code class="parameter">source</code></dt>
    <dd>
     <span class="simpara">
      The source of the IV. The source can be
      <strong><code><a href="mcrypt.constants.php#constant.mcrypt-rand">MCRYPT_RAND</a></code></strong> (system random number generator),
      <strong><code><a href="mcrypt.constants.php#constant.mcrypt-dev-random">MCRYPT_DEV_RANDOM</a></code></strong> (read data from
      <var class="filename">/dev/random</var>) and
      <strong><code><a href="mcrypt.constants.php#constant.mcrypt-dev-urandom">MCRYPT_DEV_URANDOM</a></code></strong> (read data from
      <var class="filename">/dev/urandom</var>). Prior to 5.3.0,
      <strong><code><a href="mcrypt.constants.php#constant.mcrypt-rand">MCRYPT_RAND</a></code></strong> was the only one supported on Windows.
     </span>
     <span class="simpara">
      Note that the default value of this parameter was
      <strong><code><a href="mcrypt.constants.php#constant.mcrypt-dev-random">MCRYPT_DEV_RANDOM</a></code></strong> prior to PHP 5.6.0.
     </span>
     <blockquote class="note"><p><strong class="note">Note</strong>: 
      <span class="simpara">
       Note that <strong><code><a href="mcrypt.constants.php#constant.mcrypt-dev-random">MCRYPT_DEV_RANDOM</a></code></strong> may block until more
       entropy is available.
      </span>
     </p></blockquote>
    </dd>
   
  </dl>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.mcrypt-create-iv-returnvalues">
  <h3 class="title">Return Values</h3>
  <p class="simpara">
   Returns the initialization vector, or <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> on error.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.mcrypt-create-iv-examples">
  <h3 class="title">Examples</h3>
  <div class="example" id="example-1">
   <p><strong>Example #1 <span class="function"><strong>mcrypt_create_iv()</strong></span> Example</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />    $size </span><span style="color: #007700">= </span><span style="color: #0000BB">mcrypt_get_iv_size</span><span style="color: #007700">(</span><span style="color: #0000BB">MCRYPT_CAST_256</span><span style="color: #007700">, </span><span style="color: #0000BB">MCRYPT_MODE_CFB</span><span style="color: #007700">);<br />    </span><span style="color: #0000BB">$iv </span><span style="color: #007700">= </span><span style="color: #0000BB">mcrypt_create_iv</span><span style="color: #007700">(</span><span style="color: #0000BB">$size</span><span style="color: #007700">, </span><span style="color: #0000BB">MCRYPT_DEV_RANDOM</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.mcrypt-create-iv-seealso">
  <h3 class="title">See Also</h3>
  <ul class="simplelist">
   <li><a href="http://www.ciphersbyritter.com/GLOSSARY.HTM#IV" class="link external">&raquo;&nbsp;http://www.ciphersbyritter.com/GLOSSARY.HTM#IV</a></li>
   <li><a href="http://www.quadibloc.com/crypto/co0409.htm" class="link external">&raquo;&nbsp;http://www.quadibloc.com/crypto/co0409.htm</a></li>
   <li>Chapter 9.3 of Applied Cryptography by Schneier (ISBN 0-471-11709-9)</li>
   <li><span class="function"><a href="function.random-bytes.php" class="function" rel="rdfs-seeAlso">random_bytes()</a> - Get cryptographically secure random bytes</span></li>
  </ul>
 </div>

</div><?php manual_footer($setup); ?>