FOF30\Encrypt\Aes::decryptString PHP Method

decryptString() public method

Decrypts a ciphertext into a plaintext string using AES
public decryptString ( string $stringToDecrypt, boolean $base64encoded = true ) : string
$stringToDecrypt string The ciphertext to decrypt. The first 16 bytes of the raw string must contain the IV (initialisation vector).
$base64encoded boolean Should I Base64-decode the data before decryption?
return string The plain text string
    public function decryptString($stringToDecrypt, $base64encoded = true)
    {
        if (strlen($this->keyString) != 32) {
            $key = hash('sha256', $this->keyString, true);
        } else {
            $key = $this->keyString;
        }
        if ($base64encoded) {
            $stringToDecrypt = base64_decode($stringToDecrypt);
        }
        // Calculate the IV size
        $iv_size = mcrypt_get_iv_size($this->cipherType, $this->cipherMode);
        // Extract IV
        $iv = substr($stringToDecrypt, 0, $iv_size);
        $stringToDecrypt = substr($stringToDecrypt, $iv_size);
        // Decrypt the data
        $plainText = mcrypt_decrypt($this->cipherType, $key, $stringToDecrypt, $this->cipherMode, $iv);
        return $plainText;
    }

Usage Example

示例#1
0
文件: AesTest.php 项目: Joal01/fof
 /**
  * @covers FOF30\Encrypt\Aes
  *
  * @return  void
  */
 public function testCryptProcessEcb()
 {
     if (function_exists('mcrypt_module_open')) {
         $this->aes = new Aes('The quick brown fox jumped over the lazy dog', 256, 'ecb');
         // Regular string
         $str = 'THATISINSANE';
         $es = $this->aes->encryptString($str, true);
         $ds = $this->aes->decryptString($es, true);
         $ds = rtrim($ds, "");
         $this->assertNotEquals($str, $es);
         $this->assertEquals($str, $ds);
         // UTF-8 data
         $str = 'Χρησιμοποιώντας μη λατινικούς χαρακτήρες';
         $es = $this->aes->encryptString($str, false);
         $ds = $this->aes->decryptString($es, false);
         $ds = rtrim($ds, "");
         $this->assertNotEquals($str, $es);
         $this->assertEquals($str, $ds);
         // Using an odd sized keystring (using sha256 to convert it to a key)
         $this->aes = new Aes('The quick brown fox jumped over the lazy dog');
         $str = 'This is some very secret stuff that you are not supposed to transmit in clear text';
         $es = $this->aes->encryptString($str, true);
         $ds = $this->aes->decryptString($es, true);
         $ds = rtrim($ds, "");
         $this->assertNotEquals($str, $es);
         $this->assertEquals($str, $ds);
     } else {
         $this->markTestSkipped('mcrypt is not supported on this system');
     }
 }
All Usage Examples Of FOF30\Encrypt\Aes::decryptString