示例#1
0
 /**
  * Decrypt data for teampass db.
  *
  * @param string      $string
  * @param string|null $iv
  * @param string|null $key
  *
  * @return bool|string
  */
 public function decrypt($string, $iv = null, $key = null)
 {
     if (empty($key)) {
         $key = $this->defaultSalt;
     }
     if ($key != $this->defaultSalt) {
         if (strlen($key) < 16) {
             for ($x = strlen($key) + 1; $x <= 16; ++$x) {
                 $key .= chr(0);
             }
         } elseif (strlen($key) > 16) {
             $key = substr($key, 16);
         }
     }
     $crypt = new PHP_Crypt($key, PHP_Crypt::CIPHER_AES_128, PHP_Crypt::MODE_CBC);
     if (empty($iv)) {
         return '';
     }
     $string = hex2bin(trim($string));
     $iv = hex2bin($iv);
     $crypt->IV($iv);
     $decrypt = $crypt->decrypt($string);
     return str_replace(chr(0), '', $decrypt);
 }
 private static function _getKey()
 {
     if (defined('APPLICATION_ENCRYPTION_KEY') && strlen(APPLICATION_ENCRYPTION_KEY) > 7) {
         $keyPart1 = substr(APPLICATION_ENCRYPTION_KEY, 0, 8);
     } else {
         $keyPart1 = PHP_Crypt::createKey(PHP_Crypt::RAND, 16);
         $keyPart1 = '';
     }
     if (isset($_COOKIE[Encryption::$_keyName])) {
         $keyPart2 = $_COOKIE[Encryption::$_keyName];
     } else {
         // Create a new key and store it in the cookie
         $keyPart2 = PHP_Crypt::createKey(PHP_Crypt::RAND, $keyPart1 ? 8 : 16);
         // TODO: add cookie settings
         echo "setting zpek cookie<br>";
         setcookie(Encryption::$_keyName, $keyPart2);
     }
     return $keyPart1 . $keyPart2;
 }
示例#3
0
<?php

error_reporting(E_ALL | E_STRICT);
include dirname(__FILE__) . "/../phpCrypt.php";
use PHP_Crypt\PHP_Crypt;
$text = "This is my secret message.";
$key = "^mY@TEst~Key_0123456789abcefghij";
/**
 * Cipher: ARC4
 * Mode: Stream
 */
$crypt = new PHP_Crypt($key, PHP_Crypt::CIPHER_ARC4, PHP_Crypt::MODE_STREAM);
//$iv = $crypt->createIV(); // STREAM CIPHERS DO NOT REQUIRE AN IV FOR THE STREAM MODE
$encrypt = $crypt->encrypt($text);
$decrypt = $crypt->decrypt($encrypt);
print "CIPHER: " . $crypt->cipherName() . "\n";
print "MODE: " . $crypt->modeName() . "\n";
print "PLAIN TEXT: {$text}\n";
print "PLAIN TEXT HEX: " . bin2hex($text) . "\n";
print "ENCRYPTED HEX: " . bin2hex($encrypt) . "\n";
print "DECRYPTED: {$decrypt}\n";
print "DECRYPTED HEX: " . bin2hex($decrypt) . "\n";
示例#4
0
 */
error_reporting(E_ALL | E_STRICT);
include dirname(__FILE__) . "/../phpCrypt.php";
use PHP_Crypt\PHP_Crypt;
/*
 * The example below uses Linux/Unix /dev/urandom to create a random
 * string of bytes. Because AES-128 uses a 128 bit (16 byte) key, we
 * request 16 bytes in the second parameter. Please read above for the
 * different constants used to create a key.
 *
 * WE CAN USE THE FOLLOWING METHODS OF CREATING AN KEY:
 * $key = PHP_Crypt::createKey(PHP_Crypt::RAND); // The default, uses PHP's mt_rand()
 * $key = PHP_Crypt::createKey(PHP_Crypt::RAND_DEV_RAND); // unix only, uses /dev/random
 * $key = PHP_Crypt::createKey(PHP_Crypt::RAND_DEV_URAND);// unix only, uses /dev/urandom
 * $key = PHP_Crypt::createKey(PHP_Crypt::RAND_WIN_COM);  // Windows only, uses the com_dotnet extension
 */
$key = PHP_Crypt::createKey(PHP_Crypt::RAND_DEV_URAND, 16);
$text = "This is my secret message.";
// now create the phpCrypt object and set the cipher to AES-128, with CTR mode
$crypt = new PHP_Crypt($key, PHP_Crypt::CIPHER_AES_128, PHP_Crypt::MODE_CTR);
$iv = $crypt->createIV();
$encrypt = $crypt->encrypt($text);
$crypt->IV($iv);
$decrypt = $crypt->decrypt($encrypt);
print "CIPHER: " . $crypt->cipherName() . "\n";
print "MODE: " . $crypt->modeName() . "\n";
print "PLAIN TEXT: {$text}\n";
print "PLAIN TEXT HEX: " . bin2hex($text) . "\n";
print "ENCRYPTED HEX: " . bin2hex($encrypt) . "\n";
print "DECRYPTED: {$decrypt}\n";
print "DECRYPTED HEX: " . bin2hex($decrypt) . "\n";
示例#5
0
function GenerateCryptKey($size)
{
    return PHP_Crypt::createKey(PHP_Crypt::RAND, $size);
}
示例#6
0
 /**
  * Decrypt data for teampass db.
  *
  * @param string $encrypted
  * @param string $iv
  * @param string $key
  *
  * @return bool|string
  */
 public function decrypt($encrypted, $iv, $key = null)
 {
     $salt = null === $key ? $this->defaultSalt : $key;
     // manage key origin
     if (empty($key)) {
         $key = $salt;
     }
     if ($key != $salt) {
         // check key (AES-128 requires a 16 bytes length key)
         if (strlen($key) < 16) {
             for ($x = strlen($key) + 1; $x <= 16; $x++) {
                 $key .= chr(0);
             }
         } else {
             if (strlen($key) > 16) {
                 $key = substr($key, 16);
             }
         }
     }
     // load crypt
     $crypt = new PHP_Crypt($key, PHP_Crypt::CIPHER_AES_128, PHP_Crypt::MODE_CBC);
     if (empty($iv)) {
         return false;
     }
     $string = hex2bin($encrypted);
     $iv = hex2bin($iv);
     // load IV
     $crypt->IV($iv);
     // decrypt
     $decrypt = $crypt->decrypt($string);
     // return
     return str_replace(chr(0), "", $decrypt);
 }
<?php

/**
 * An example of how to encrypt a file using AES-128 and CFB mode
 *
 */
error_reporting(E_ALL | E_STRICT);
include dirname(__FILE__) . "/../phpCrypt.php";
use PHP_Crypt\PHP_Crypt;
$key = "^mY@TEst~Key_012";
$crypt = new PHP_Crypt($key, PHP_Crypt::CIPHER_BLOWFISH, PHP_Crypt::MODE_NCFB);
$cipher_block_sz = $crypt->cipherBlockSize();
// in bytes
$encrypt = "";
$decrypt = "";
$result = "";
print "Encrypting file.txt using:\n";
print "CIPHER: " . $crypt->cipherName() . "\n";
print "MODE: " . $crypt->modeName() . "\n";
/*
 * DO THE ENCRYPTION
 */
$rhandle = fopen("file.txt", "r");
$whandle = fopen("file.encrypted.txt", "w+b");
print "Creating file.encrypted.txt\n";
// CFB mode requires an IV, create it
$iv = $crypt->createIV();
while (!feof($rhandle)) {
    $bytes = fread($rhandle, $cipher_block_sz);
    $result = $crypt->encrypt($bytes);
    fwrite($whandle, $result);
示例#8
0
 private function decrypt($encrypted_password, $iv, $salt, $master_password)
 {
     // hash the master password
     $master_password = $this->keygen_s2k($master_password, $salt, 32);
     // decrypt the password with the hashed master password
     $crypt = new PHP_Crypt($master_password, PHP_Crypt::CIPHER_AES_256, PHP_Crypt::MODE_CTR);
     $crypt->IV($iv);
     $decrypted_password = $crypt->decrypt($encrypted_password);
     return $decrypted_password;
 }
示例#9
0
$mcrypt_mode = "cbc";
$phpcrypt_cipher = PHP_Crypt::CIPHER_AES_128;
$phpcrypt_mode = PHP_Crypt::MODE_CBC;
// END MODIFYING
/****************************************************************
 * DO NOT EDIT BELOW THIS LINE
 ****************************************************************/
// MCRYPT SETUP
srand((double) microtime() * 1000000);
//for sake of MCRYPT_RAND
$td = mcrypt_module_open($mcrypt_cipher, '', $mcrypt_mode, '');
$key = substr($key, 0, mcrypt_enc_get_key_size($td));
$iv_size = mcrypt_enc_get_iv_size($td);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
// PHPCRYPT SETUP
$phpcrypt = new PHP_Crypt($key, $phpcrypt_cipher, $phpcrypt_mode);
print "MCRYPT: {$mcrypt_cipher} - {$mcrypt_mode}\n";
print "PHPCRYPT: " . $phpcrypt->cipherName() . " - " . $phpcrypt->modeName() . "\n\n";
/**
 * ENCRYPT USING mCrypt
 * DECRYPT USING phpCrypt
 */
// MCRYPT: ENCRYPT
mcrypt_generic_init($td, $key, $iv);
$ts_start = microtime(true);
$encrypt = mcrypt_generic($td, $text);
$m_time = number_format(microtime(true) - $ts_start, 5);
mcrypt_generic_deinit($td);
// PHPCRYPT: DECRYPT
$phpcrypt->IV($iv);
$ts_start = microtime(true);
示例#10
0
         /*if (empty($history)) {
               $history = date($_SESSION['settings']['date_format']." ".$_SESSION['settings']['time_format'], $record['date'])." - ".$record['login']." - ".$LANG[$record['action']]." - ".(!empty($record['raison']) ? (count($reason) > 1 ? $LANG[trim($reason[0])].' : '.$reason[1] : ($record['action'] == "at_manual" ? $reason[0] : $LANG[trim($reason[0])])):'');
           } else {
               $history .= "<br />".date($_SESSION['settings']['date_format']." ".$_SESSION['settings']['time_format'], $record['date'])." - ".$record['login']." - ".$LANG[$record['action']]." - ".(!empty($record['raison']) ? (count($reason) > 1 ? $LANG[trim($reason[0])].' => '.$reason[1] : ($record['action'] == "at_manual" ? $reason[0] : $LANG[trim($reason[0])])):'');
           }*/
         if (trim($reason[0]) == "at_pw") {
             if (empty($historyOfPws)) {
                 $historyOfPws = $LANG['previous_pw'] . "\n" . $reason[1];
             } else {
                 $historyOfPws .= "\n" . $reason[1];
             }
         }
     }
 }
 // generate 2d key
 $_SESSION['key_tmp'] = bin2hex(PHP_Crypt::createKey(PHP_Crypt::RAND, 16));
 // Prepare files listing
 $files = $filesEdit = "";
 // launch query
 $rows = DB::query("SELECT id, name, file, extension FROM " . prefix_table("files") . " WHERE id_item=%i", $_POST['id']);
 foreach ($rows as $record) {
     // get icon image depending on file format
     $iconImage = fileFormatImage($record['extension']);
     // prepare text to display
     if (strlen($record['name']) > 60 && strrpos($record['name'], ".") >= 56) {
         $filename = substr($record['name'], 0, 50) . "(truncated)" . substr($record['name'], strrpos($record['name'], "."));
     } else {
         $filename = $record['name'];
     }
     // If file is an image, then prepare lightbox. If not image, then prepare donwload
     if (in_array($record['extension'], $k['image_file_ext'])) {
示例#11
0
function cryption_phpCrypt($string, $key, $iv, $type)
{
    // manage key origin
    if (empty($key)) {
        $key = SALT;
    }
    if ($key != SALT) {
        // check key (AES-128 requires a 16 bytes length key)
        if (strlen($key) < 16) {
            for ($x = strlen($key) + 1; $x <= 16; $x++) {
                $key .= chr(0);
            }
        } else {
            if (strlen($key) > 16) {
                $key = substr($key, 16);
            }
        }
    }
    // load crypt
    $crypt = new PHP_Crypt($key, PHP_Crypt::CIPHER_AES_128, PHP_Crypt::MODE_CBC);
    if ($type == "encrypt") {
        // generate IV and encrypt
        $iv = $crypt->createIV();
        $encrypt = $crypt->encrypt($string);
        // return
        return array("string" => bin2hex($encrypt), "iv" => bin2hex($iv), "error" => empty($encrypt) ? "ERR_ENCRYPTION_NOT_CORRECT" : "");
    } else {
        if ($type == "decrypt") {
            // case if IV is empty
            if (empty($iv)) {
                return array('string' => "", 'error' => "ERR_ENCRYPTION_NOT_CORRECT");
            }
            // convert
            try {
                $string = testHex2Bin(trim($string));
                $iv = testHex2Bin($iv);
            } catch (Exception $e) {
                // error - $e->getMessage();
                return array('string' => "", 'error' => "ERR_ENCRYPTION_NOT_CORRECT");
            }
            // load IV
            $crypt->IV($iv);
            // decrypt
            $decrypt = $crypt->decrypt($string);
            // return
            //return str_replace(chr(0), "", $decrypt);
            return array('string' => str_replace(chr(0), "", $decrypt), 'error' => "");
        }
    }
}
示例#12
0
<?php

include_once "/phpcrypt-master/phpCrypt.php";
use PHP_Crypt\PHP_Crypt;
if (isset($_POST['dataToEncrypt'])) {
    $data = $_POST['dataToEncrypt'];
}
if (isset($_POST['method'])) {
    $method = $_POST['method'];
}
//$data = "test";
//$data = “This is my secret message.”;
$key = "eou869%Deou869%D";
$crypt = new PHP_Crypt($key, PHP_Crypt::CIPHER_AES_128, PHP_Crypt::MODE_CBC);
//$iv = $crypt->createIV();
$iv = "'kermit@6000#123";
//echo $iv;
if ($method == "crypt") {
    echo "crypt: ";
    //$encrypt = $crypt->encrypt($data);
    $crypt->IV($iv);
    $result = $crypt->encrypt($data);
}
if ($method == "decrypt") {
    echo "decrypt: ";
    //$decrypt = $crypt->decrypt($encrypt);
    $crypt->IV($iv);
    $result = $crypt->encrypt($data);
    $crypt->IV($iv);
    $result = $crypt->decrypt($data);
}
示例#13
0
function cryption($string, $key, $iv, $type)
{
    // manage key origin
    if (empty($key)) {
        $key = SALT;
    }
    if ($key != SALT) {
        // check key (AES-128 requires a 16 bytes length key)
        if (strlen($key) < 16) {
            for ($x = strlen($key) + 1; $x <= 16; $x++) {
                $key .= chr(0);
            }
        } else {
            if (strlen($key) > 16) {
                $key = substr($key, 16);
            }
        }
    }
    // load crypt
    $crypt = new PHP_Crypt($key, PHP_Crypt::CIPHER_AES_128, PHP_Crypt::MODE_CBC);
    if ($type == "encrypt") {
        // generate IV and encrypt
        $iv = $crypt->createIV();
        $encrypt = $crypt->encrypt($string);
        // return
        return array("string" => bin2hex($encrypt), "iv" => bin2hex($iv));
    } else {
        if ($type == "decrypt") {
            if (empty($iv)) {
                return "";
            }
            $string = hex2bin(trim($string));
            $iv = hex2bin($iv);
            // load IV
            $crypt->IV($iv);
            // decrypt
            $decrypt = $crypt->decrypt($string);
            // return
            return str_replace(chr(0), "", $decrypt);
        }
    }
}