<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Encryption Class : CodeIgniter User Guide</title>

<style type='text/css' media='all'>@import url('../userguide.css');</style>
<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />

<script type="text/javascript" src="../nav/nav.js"></script>
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
<script type="text/javascript" src="../nav/moo.fx.js"></script>
<script type="text/javascript" src="../nav/user_guide_menu.js"></script>

<meta http-equiv='expires' content='-1' />
<meta http-equiv= 'pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='ExpressionEngine Dev Team' />
<meta name='description' content='CodeIgniter User Guide' />

</head>
<body>

<!-- START NAVIGATION -->
<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
<div id="masthead">
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td>
<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
</tr>
</table>
</div>
<!-- END NAVIGATION -->


<!-- START BREADCRUMB -->
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td id="breadcrumb">
<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;
<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
Encryption Class
</td>
<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
</tr>
</table>
<!-- END BREADCRUMB -->

<br clear="all" />


<!-- START CONTENT -->
<div id="content">


<h1>Encryption Class</h1>

<p>The Encryption Class provides two-way data encryption. It uses a scheme that either compiles
the message using a randomly hashed bitwise XOR encoding scheme, or is encrypted using
the Mcrypt library. If Mcrypt is not available on your server the encoded message will
still provide a reasonable degree of security for encrypted sessions or other such "light" purposes.
If Mcrypt is available, you'll be provided with a high degree of security appropriate for storage.</p>


<h2>Setting your Key</h2>

<p>A <em>key</em> is a piece of information that controls the cryptographic process and permits an encrypted string to be decoded.
In fact, the key you chose will provide the <strong>only</strong> means to decode data that was encrypted with that key,
so not only must you choose the key carefully, you must never change it if you intend use it for persistent data.</p>

<p>It goes without saying that you should guard your key carefully.
Should someone gain access to your key, the data will be easily decoded. If your server is not totally under your control
it's impossible to ensure key security so you may want to think carefully before using it for anything
that requires high security, like storing credit card numbers.</p>

<p>To take maximum advantage of the encryption algorithm, your key should be 32 characters in length (128 bits).
The key should be as random a string as you can concoct, with numbers and uppercase and lowercase letters.
Your key should <strong>not</strong> be a simple text string. In order to be cryptographically secure it
needs to be as random as possible.</p>

<p>Your key can be either stored in your <dfn>application/config/config.php</dfn>, or you can design your own
storage mechanism and pass the key dynamically when encoding/decoding.</p>

<p>To save your key to your <dfn>application/config/config.php</dfn>, open the file and set:</p>
<code>$config['encryption_key'] = "YOUR KEY";</code>


<h2>Message Length</h2>

<p>It's important for you to know that the encoded messages the encryption function generates will be approximately 2.6 times longer than the original
message. For example, if you encrypt the string "my super secret data", which is 21 characters in length, you'll end up
with an encoded string that is roughly 55 characters (we say "roughly" because the encoded string length increments in
64 bit clusters, so it's not exactly linear). Keep this information in mind when selecting your data storage mechanism. Cookies,
for example, can only hold 4K of information.</p>


<h2>Initializing the Class</h2>

<p>Like most other classes in CodeIgniter, the Encryption class is initialized in your controller using the <dfn>$this->load->library</dfn> function:</p>

<code>$this->load->library('encrypt');</code>
<p>Once loaded, the Encrypt library object will be available using: <dfn>$this->encrypt</dfn></p>


<h2>$this->encrypt->encode()</h2>

<p>Performs the data encryption and returns it as a string. Example:</p>
<code>
$msg = 'My secret message';<br />
<br />
$encrypted_string = $this->encrypt->encode($msg);</code>

<p>You can optionally pass your encryption key via the second parameter if you don't want to use the one in your config file:</p>

<code>
$msg = 'My secret message';<br />
$key = 'super-secret-key';<br />
<br />
$encrypted_string = $this->encrypt->encode($msg, $key);</code>


<h2>$this->encrypt->decode()</h2>

<p>Decrypts an encoded string. Example:</p>

<code>
$encrypted_string = 'APANtByIGI1BpVXZTJgcsAG8GZl8pdwwa84';<br />
<br />
$plaintext_string = $this->encrypt->decode($encrypted_string);</code>

<p>You can optionally pass your encryption key via the second parameter if you don't want to use the one in your config file:</p>

<code>
$msg = 'My secret message';<br />
$key = 'super-secret-key';<br />
<br />
$encrypted_string = $this->encrypt->decode($msg, $key);</code>


<h2>$this->encrypt->set_cipher();</h2>

<p>Permits you to set an Mcrypt cipher. By default it uses <samp>MCRYPT_RIJNDAEL_256</samp>. Example:</p>
<code>$this->encrypt->set_cipher(MCRYPT_BLOWFISH);</code>
<p>Please visit php.net for a list of <a href="http://php.net/mcrypt">available ciphers</a>.</p>

<p>If you'd like to manually test whether your server supports Mcrypt you can use:</p>
<code>echo ( ! function_exists('mcrypt_encrypt')) ? 'Nope' : 'Yup';</code>


<h2>$this->encrypt->set_mode();</h2>

<p>Permits you to set an Mcrypt mode. By default it uses <samp>MCRYPT_MODE_CBC</samp>. Example:</p>
<code>$this->encrypt->set_mode(MCRYPT_MODE_CFB);</code>
<p>Please visit php.net for a list of <a href="http://php.net/mcrypt">available modes</a>.</p>


<h2>$this->encrypt->sha1();</h2>
<p>SHA1 encoding function. Provide a string and it will return a 160 bit one way hash. Note: SHA1, just like MD5 is non-decodable. Example:</p>
<code>$hash = $this->encrypt->sha1('Some string');</code>

<p>Many PHP installations have SHA1 support by default so if all you need is to encode a hash it's simpler to use the native
function:</p>

<code>$hash = sha1('Some string');</code>

<p>If your server does not support SHA1 you can use the provided function.</p>

<h2 id="legacy">$this->encrypt->encode_from_legacy(<kbd>$orig_data</kbd>, <kbd>$legacy_mode</kbd> = MCRYPT_MODE_ECB, <kbd>$key</kbd> = '');</h2>
<p>Enables you to re-encode data that was originally encrypted with CodeIgniter 1.x to be compatible with the Encryption library in CodeIgniter 2.x. It is only
	necessary to use this method if you have encrypted data stored permanently such as in a file or database and are on a server that supports Mcrypt. "Light" use encryption
	such as encrypted session data or transitory encrypted flashdata require no intervention on your part. However, existing encrypted Sessions will be
	destroyed since data encrypted prior to 2.x will not be decoded.</p>

<p class="important"><strong>Why only a method to re-encode the data instead of maintaining legacy methods for both encoding and decoding?</strong> The algorithms in
	the Encryption library have improved in CodeIgniter 2.x	both for performance and security, and we do not wish to encourage continued use of the older methods.
	You can of course extend the Encryption library if you wish and replace the new methods with the old and retain seamless compatibility with CodeIgniter 1.x
	encrypted data, but this a decision that a developer should make cautiously and deliberately, if at all.</p>

<code>$new_data = $this->encrypt->encode_from_legacy(<kbd>$old_encrypted_string</kbd>);</code>

<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder">
<tr>
	<th>Parameter</th>
	<th>Default</th>
	<th>Description</th>
</tr>
<tr>
	<td class="td"><strong>$orig_data</strong></td>
	<td class="td">n/a</td>
	<td class="td">The original encrypted data from CodeIgniter 1.x's Encryption library</td>
</tr>
<tr>
	<td class="td"><strong>$legacy_mode</strong></td>
	<td class="td">MCRYPT_MODE_ECB</td>
	<td class="td">The Mcrypt mode that was used to generate the original encrypted data. CodeIgniter 1.x's default was MCRYPT_MODE_ECB, and it will
		assume that to be the case unless overridden by this parameter.</td>
</tr>
<tr>
	<td class="td"><strong>$key</strong></td>
	<td class="td">n/a</td>
	<td class="td">The encryption key. This it typically specified in your config file as outlined above.</td>
</tr>
</table>

</div>
<!-- END CONTENT -->


<div id="footer">
<p>
Previous Topic:&nbsp;&nbsp;<a href="email.html">Email Class</a>
&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
Next Topic:&nbsp;&nbsp;<a href="file_uploading.html">File Uploading Class</a>
</p>
<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2011 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p>
</div>

</body>
</html>