用于PHP的AES加密使我的网络服务器崩溃


Aes encryption for php crashing my webserver

由于某种原因索引.php不起作用。这是我的代码。我正在使用在 http://aesencryption.net/#PHP-aes-encryption-example 上找到的示例

    <?php
    include 'AES.php's;
    $inputText = "My text to encrypt";
    $inputKey = "My text to encrypt";
    $blockSize = 256;
    $aes = new AES($inputText, $inputKey, $blockSize);
    $enc = $aes->encrypt();
    $aes->setData($enc);
    $dec=$aes->decrypt();
    echo "After encryption: ".$enc."<br/>";
    echo "After decryption: ".$dec."<br/>";
    ?>

出于某种原因,它给了我一个 404

在第一行中,您使用include 'AES.php's;更改include 'AES.php';我已经检查了您提供的示例以及当我更改错误语法时它的工作原理

<?php
include 'aes.php';
$inputText = "My text to encrypt";
$inputKey = "My text to encrypt";
$blockSize = 256;
$aes = new AES($inputText, $inputKey, $blockSize);
$enc = $aes->encrypt();
$aes->setData($enc);
$dec=$aes->decrypt();
echo "After encryption: ".$enc."<br/>";
echo "After decryption: ".$dec."<br/>";
?>

以下是根据您的示例aes.php http://aesencryption.net/#PHP-aes-encryption-example

AES.php

/**
Aes encryption
*/
class AES {
  const M_CBC = 'cbc';
  const M_CFB = 'cfb';
  const M_ECB = 'ecb';
  const M_NOFB = 'nofb';
  const M_OFB = 'ofb';
  const M_STREAM = 'stream';
  protected $key;
  protected $cipher;
  protected $data;
  protected $mode;
  protected $IV;
/**
* 
* @param type $data
* @param type $key
* @param type $blockSize
* @param type $mode
*/
  function __construct($data = null, $key = null, $blockSize = null, $mode = null) {
    $this->setData($data);
    $this->setKey($key);
    $this->setBlockSize($blockSize);
    $this->setMode($mode);
    $this->setIV("");
  }
/**
* 
* @param type $data
*/
  public function setData($data) {
    $this->data = $data;
  }
/**
* 
* @param type $key
*/
  public function setKey($key) {
    $this->key = $key;
  }
/**
* 
* @param type $blockSize
*/
  public function setBlockSize($blockSize) {
    switch ($blockSize) {
      case 128:
      $this->cipher = MCRYPT_RIJNDAEL_128;
      break;
      case 192:
      $this->cipher = MCRYPT_RIJNDAEL_192;
      break;
      case 256:
      $this->cipher = MCRYPT_RIJNDAEL_256;
      break;
    }
  }
/**
* 
* @param type $mode
*/
  public function setMode($mode) {
    switch ($mode) {
      case AES::M_CBC:
      $this->mode = MCRYPT_MODE_CBC;
      break;
      case AES::M_CFB:
      $this->mode = MCRYPT_MODE_CFB;
      break;
      case AES::M_ECB:
      $this->mode = MCRYPT_MODE_ECB;
      break;
      case AES::M_NOFB:
      $this->mode = MCRYPT_MODE_NOFB;
      break;
      case AES::M_OFB:
      $this->mode = MCRYPT_MODE_OFB;
      break;
      case AES::M_STREAM:
      $this->mode = MCRYPT_MODE_STREAM;
      break;
      default:
      $this->mode = MCRYPT_MODE_ECB;
      break;
    }
  }
/**
* 
* @return boolean
*/
  public function validateParams() {
    if ($this->data != null &&
        $this->key != null &&
        $this->cipher != null) {
      return true;
    } else {
      return FALSE;
    }
  }
  public function setIV($IV) {
        $this->IV = $IV;
    }
  protected function getIV() {
      if ($this->IV == "") {
        $this->IV = mcrypt_create_iv(mcrypt_get_iv_size($this->cipher, $this->mode), MCRYPT_RAND);
      }
      return $this->IV;
  }
/**
* @return type
* @throws Exception
*/
  public function encrypt() {
    if ($this->validateParams()) {
      return trim(base64_encode(
        mcrypt_encrypt(
          $this->cipher, $this->key, $this->data, $this->mode, $this->getIV())));
    } else {
      throw new Exception('Invlid params!');
    }
  }
/**
* 
* @return type
* @throws Exception
*/
  public function decrypt() {
    if ($this->validateParams()) {
      return trim(mcrypt_decrypt(
        $this->cipher, $this->key, base64_decode($this->data), $this->mode, $this->getIV()));
    } else {
      throw new Exception('Invlid params!');
    }
  }
}

由于某种原因,索引.php不起作用。

这不是很有帮助。

我正在使用在 http://aesencryption.net/#PHP-aes-encryption-example 上找到的示例

不要使用该代码。请改用经过充分研究的加密库。