Example #1
0
<?php

require __DIR__ . '/../vendor/autoload.php';
require __DIR__ . '/shared-data.php';
$pkcs7 = new phpaes\PKCS7();
//$pkcs7 = new phpaes\NoPad();
$aescbc = new phpaes\AES_CBC_Mcrypt($pkcs7);
$util = new phpaes\Util();
foreach ($keys as $keylen => $key) {
    $aescbc->setKey($key);
    $aescbc->setIv($iv);
    foreach ($testTexts as $plainText) {
        $cipherText = $aescbc->encrypt($plainText);
        $padded = $pkcs7->pad($plainText, 16);
        $decodedText = $aescbc->decrypt($cipherText);
        echo "-------------------------------------------------------\n";
        echo "               Key: ({$keylen}) {$key}\n";
        echo "         Plaintext: {$plainText}\n";
        echo " Plaintext (bytes): " . $util->bytestring($plainText) . "\n";
        echo "    Padded (bytes): " . $util->bytestring($padded) . "\n";
        echo "      Padded (hex): " . bin2hex($padded) . "\n";
        echo "      Padded (len): " . strlen($padded) . "\n";
        echo "Ciphertext (bytes): " . $util->bytestring($cipherText) . "\n";
        echo "  Ciphertext (hex): " . bin2hex($cipherText) . "\n";
        echo "  Ciphertext (len): " . strlen($cipherText) . "\n";
        echo "     Decryptedtext: {$decodedText}\n";
    }
}
Example #2
0
$keys = array('128' => '1234567890123456', '192' => '123456789012345612345678', '256' => '12345678901234561234567890123456');
$itterations = 500;
$results = array();
// array('ext', 'keylen', 'textsize', '(en/de)code', 'ops/sec')
$aesMcrypt = new phpaes\AES_CBC_Mcrypt(new phpaes\PKCS7());
$aesOpenssl = new phpaes\AES_CBC_OpenSSL();
foreach (array('mcrypt' => $aesMcrypt, 'openssl' => $aesOpenssl) as $methodName => $method) {
    /** @var phpaes\AES $method */
    foreach ($texts as $textDesc => $secretText) {
        foreach ($keys as $keyLen => $key) {
            $method->setKey($key);
            $method->setIv('1234567890123456');
            // non-real iv, but ok for demo
            $s = microtime(true);
            for ($i = $itterations; $i > 0; $i--) {
                $method->encrypt($secretText);
            }
            $e = microtime(true);
            $results[] = array('ext' => $methodName, 'keylen' => $keyLen, 'textsize' => $textDesc, '(en/de)code' => 'enc', 'ops/sec' => number_format($itterations / ($e - $s), 5, '.', ''));
            $etext = $method->encrypt($secretText);
            $s = microtime(true);
            for ($i = $itterations; $i > 0; $i--) {
                $method->decrypt($etext);
            }
            $e = microtime(true);
            $results[] = array('ext' => $methodName, 'keylen' => $keyLen, 'textsize' => $textDesc, '(en/de)code' => 'dec', 'ops/sec' => number_format($itterations / ($e - $s), 5, '.', ''));
        }
    }
}
$util = new phpaes\Util();
echo "Results:\n" . $util->renderTable($results) . "\n";