Source for file Rc4.php
Documentation is available at Rc4.php
/* vim: set expandtab tabstop=4 shiftwidth=4: */
// +----------------------------------------------------------------------+
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2003 The PHP Group |
// +----------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the PHP license, |
// | that is bundled with this package in the file LICENSE, and is |
// | available at through the world-wide-web at |
// | http://www.php.net/license/2_02.txt. |
// | If you did not receive a copy of the PHP license and are unable to |
// | obtain it through the world-wide-web, please send a note to |
// | license@php.net so we can mail you a copy immediately. |
// +----------------------------------------------------------------------+
// | Authors: Dave Mertens <dmertens@zyprexia.com> |
// +----------------------------------------------------------------------+
// $Id: Rc4.php 304005 2010-10-04 13:11:08Z clockwerx $
* RC4 stream cipher routines implementation
* in PHP4 based on code written by Damien Miller <djm@mindrot.org>
* $message = "PEAR rulez!";
* echo "Original message: $message <br>\n";
* echo "Encrypted message: $message <br>\n";
* $rc4->decrypt($message);
* echo "Decrypted message: $message <br>\n";
* @version $Revision: 304005 $
* @author Dave Mertens <zyprexia@php.net>
* Pass encryption key to key()
* @param string key - Key which will be used for encryption
* Assign encryption key to class
* @param string key - Key which will be used for encryption
for ($this->i = 0; $this->i < 256; $this->i++ ) {
$this->s[$this->i] = $this->i;
for ($this->i = 0; $this->i < 256; $this->i++ ) {
$this->j = ($this->j + $this->s[$this->i] + ord($key[$this->i % $len])) % 256;
$this->s[$this->i] = $this->s[$this->j];
* @param string paramstr - string that will encrypted
function crypt(&$paramstr) {
//Init key for every call, Bugfix 22316
for ($c= 0; $c < $len; $c++ ) {
$this->i = ($this->i + 1 ) % 256;
$this->j = ($this->j + $this->s[$this->i]) % 256;
$this->s[$this->i] = $this->s[$this->j];
$t = ($this->s[$this->i] + $this->s[$this->j]) % 256;
$paramstr[$c] = chr(ord($paramstr[$c]) ^ $this->s[$t]);
* @param string paramstr - string that will decrypted
//Decrypt is exactly the same as encrypting the string. Reuse (en)crypt code
Documentation generated on Mon, 11 Mar 2019 15:39:20 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.
|