本文整理汇总了PHP中Crypt_Rijndael类的典型用法代码示例。如果您正苦于以下问题:PHP Crypt_Rijndael类的具体用法?PHP Crypt_Rijndael怎么用?PHP Crypt_Rijndael使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Crypt_Rijndael类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: Crypto
public static function Crypto($text, $cipher, $key, $isEncrypt)
{
switch ($cipher) {
case 'DES':
$crypt = new Crypt_DES(CRYPT_DES_MODE_CBC);
$crypt->setKey($key);
$crypt->setIV($key);
if ($isEncrypt) {
return strtoupper(bin2hex($crypt->encrypt($text)));
} else {
return $crypt->decrypt(CryptoUtil::hex2bin($text));
}
break;
case 'AES-256':
$crypt = new Crypt_Rijndael(CRYPT_RIJNDAEL_MODE_ECB);
$crypt->setKey($key);
if ($isEncrypt) {
return strtoupper(bin2hex($crypt->encrypt($text)));
} else {
return $crypt->decrypt(CryptoUtil::hex2bin($text));
}
break;
default:
break;
}
return "ERROR";
}
开发者ID:jemmy655,项目名称:OpenCart-API-service-by-Kancart.com-Mobile,代码行数:27,代码来源:CryptoUtil.php
示例2: rijndael_decrypt_file
function rijndael_decrypt_file($file, $key)
{
require_once dirname(__FILE__) . '/includes/phpseclib/Crypt/Rijndael.php';
$rijndael = new Crypt_Rijndael();
$rijndael->setKey($key);
$ciphertext = file_get_contents($file);
print $rijndael->decrypt($ciphertext);
}
开发者ID:taeche,项目名称:SoDoEx,代码行数:8,代码来源:example-decrypt.php
示例3: testKeyPaddingRijndael
/**
* @group github451
*/
public function testKeyPaddingRijndael()
{
// this test case is from the following URL:
// https://web.archive.org/web/20070209120224/http://fp.gladman.plus.com/cryptography_technology/rijndael/aesdvec.zip
$aes = new Crypt_Rijndael();
$aes->disablePadding();
$aes->setKey(pack('H*', '2b7e151628aed2a6abf7158809cf4f3c762e7160'));
// 160-bit key. Valid in Rijndael.
$ciphertext = $aes->encrypt(pack('H*', '3243f6a8885a308d313198a2e0370734'));
$this->assertEquals($ciphertext, pack('H*', '231d844639b31b412211cfe93712b880'));
}
开发者ID:TheTypoMaster,项目名称:SPHERE-Framework,代码行数:14,代码来源:TestCase.php
示例4: init
/**
* Initilizes cryptographic scheme
*/
private static function init()
{
if (is_null(self::$cryptographicScheme)) {
$key = KeyHandler::readKey();
$mysqlKey = "";
for ($a = 0; $a < strlen($key); $a++) {
$mysqlKey[$a % 16] = chr(ord($mysqlKey[$a % 16]) ^ ord($key[$a]));
}
$aes = new Crypt_Rijndael(CRYPT_RIJNDAEL_MODE_ECB);
$aes->setKeyLength(128);
$aes->setBlockLength(128);
$aes->setKey($mysqlKey);
self::$cryptographicScheme = $aes;
}
}
开发者ID:lahirwisada,项目名称:orangehrm,代码行数:18,代码来源:Cryptographer.php
示例5: getCipher
/**
* This method returns instance of cipher. In case you need to use other than the default cipher,
* you can override it from model
*
* @return Initialized instance of cipher
*/
private function getCipher()
{
static $cipher = null;
if ($cipher == null) {
$cipher = new \Crypt_Rijndael();
$key = $this->getEncryptionKey();
if (strlen($key)) {
$cipher->setKey($key);
} else {
$cipher = null;
return null;
}
$cipher->setBlockLength(224);
}
return $cipher;
}
开发者ID:dioscouri,项目名称:f3-lib,代码行数:22,代码来源:Encryptable.php
示例6: decrypt
/**
* Decrypt the ciphertext
* @param string $cipherText
* @return object \stdClass Unserialized token
*/
public function decrypt($cipherText)
{
// Decryption: prefer mcrypt, if available (since it can decrypt data encrypted by either mcrypt or phpseclib)
$cipherText = base64_decode($cipherText);
$iv = substr($cipherText, 0, self::IV_SIZE);
$cipherText = substr($cipherText, self::IV_SIZE);
if (function_exists('mcrypt_decrypt')) {
$token = @mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $this->key, $cipherText, MCRYPT_MODE_CBC, $iv);
} else {
global $updraftplus;
$updraftplus->ensure_phpseclib('Crypt_Rijndael', 'Crypt/Rijndael');
$rijndael = new Crypt_Rijndael();
$rijndael->setKey($this->key);
$rijndael->setIV($iv);
$token = $rijndael->decrypt($cipherText);
}
return $token;
}
开发者ID:jesusmarket,项目名称:jesusmarket,代码行数:23,代码来源:Encrypter.php
示例7: decrypt_message
function decrypt_message($message, $asym_key)
{
$rsa = new Crypt_RSA();
$rij = new Crypt_Rijndael();
// Extract the Symmetric Key
$len = substr($message, 0, 3);
$len = hexdec($len);
$sym_key = substr($message, 0, $len);
//Extract the encrypted message
$message = substr($message, 3);
$ciphertext = substr($message, $len);
$ciphertext = base64_decode($ciphertext);
// Decrypt the encrypted symmetric key
$rsa->loadKey($asym_key);
$sym_key = base64_decode($sym_key);
$sym_key = $rsa->decrypt($sym_key);
// Decrypt the message
$rij->setKey($sym_key);
$plaintext = $rij->decrypt($ciphertext);
return $message;
}
开发者ID:Zeeshan-Afzal92,项目名称:RSA-Cryptography,代码行数:21,代码来源:encrypt_decrypt.php
示例8: generateKey
/**
* @param null|string $input
* @return string
*/
public function generateKey($input = NULL)
{
$text = $input === NULL ? $this->username . ';' . date('d/m/Y H:i:s') . ';' . $this->ip : $input;
$cipher = new \Crypt_Rijndael();
$cipher->setKeyLength(256);
$cipher->setBlockLength(128);
$cipher->setKey(base64_decode($this->key));
$cipher->setIV(base64_decode($this->iv));
return base64_encode($cipher->encrypt($text));
}
开发者ID:ondrs,项目名称:otomoto-api,代码行数:14,代码来源:Api.php
示例9:
/**
* Default Constructor.
*
* Determines whether or not the mcrypt extension should be used.
*
* $mode could be:
*
* - CRYPT_AES_MODE_ECB
*
* - CRYPT_AES_MODE_CBC
*
* - CRYPT_AES_MODE_CTR
*
* - CRYPT_AES_MODE_CFB
*
* - CRYPT_AES_MODE_OFB
*
* If not explictly set, CRYPT_AES_MODE_CBC will be used.
*
* @see Crypt_Rijndael::Crypt_Rijndael()
* @see Crypt_Base::Crypt_Base()
* @param optional Integer $mode
* @access public
*/
function __construct($mode = CRYPT_AES_MODE_CBC)
{
parent::__construct($mode);
}
开发者ID:kevinlovesing,项目名称:dokuwiki,代码行数:28,代码来源:Crypt_AES.php
示例10: inline_crypt_setup
public function inline_crypt_setup()
{
$lambda_functions =& Crypt_Rijndael::get_lambda_functions();
$block_size = $this->block_size;
$mode = $this->mode;
if (count($lambda_functions) < 5) {
$w = $this->w;
$dw = $this->dw;
$init_encryptBlock = '';
$init_decryptBlock = '';
} else {
$i = 0;
for ($cw = count($this->w); $i < $cw; ++$i) {
$w[] = '$w_' . $i;
$dw[] = '$dw_' . $i;
}
$init_encryptBlock = 'extract($self->w, EXTR_PREFIX_ALL, "w");';
$init_decryptBlock = 'extract($self->dw, EXTR_PREFIX_ALL, "dw");';
}
$code_hash = md5($mode . ', ' . $block_size . ', ' . implode(',', $w));
if (!isset($lambda_functions[$code_hash])) {
$Nr = $this->Nr;
$Nb = $this->Nb;
$c = $this->c;
$init_encryptBlock .= '' . "\n" . ' $t0 = $self->t0;' . "\n" . ' $t1 = $self->t1;' . "\n" . ' $t2 = $self->t2;' . "\n" . ' $t3 = $self->t3;' . "\n" . ' $sbox = $self->sbox;';
$s = 'e';
$e = 's';
$wc = $Nb - 1;
$_encryptBlock = '$in = unpack("N*", $in);' . "\n";
for ($i = 0; $i < $Nb; ++$i) {
$_encryptBlock .= '$s' . $i . ' = $in[' . ($i + 1) . '] ^ ' . $w[++$wc] . ';' . "\n" . '';
}
for ($round = 1; $round < $Nr; ++$round) {
list($s, $e) = array($e, $s);
for ($i = 0; $i < $Nb; ++$i) {
$_encryptBlock .= '$' . $e . $i . ' =' . "\n" . ' $t0[($' . $s . $i . ' >> 24) & 0xff] ^' . "\n" . ' $t1[($' . $s . ($i + $c[1]) % $Nb . ' >> 16) & 0xff] ^' . "\n" . ' $t2[($' . $s . ($i + $c[2]) % $Nb . ' >> 8) & 0xff] ^' . "\n" . ' $t3[ $' . $s . ($i + $c[3]) % $Nb . ' & 0xff] ^' . "\n" . ' ' . $w[++$wc] . ';' . "\n" . '';
}
}
for ($i = 0; $i < $Nb; ++$i) {
$_encryptBlock .= '$' . $e . $i . ' =' . "\n" . ' $sbox[ $' . $e . $i . ' & 0xff] |' . "\n" . ' ($sbox[($' . $e . $i . ' >> 8) & 0xff] << 8) |' . "\n" . ' ($sbox[($' . $e . $i . ' >> 16) & 0xff] << 16) |' . "\n" . ' ($sbox[($' . $e . $i . ' >> 24) & 0xff] << 24);' . "\n";
}
$_encryptBlock .= '$in = pack("N*"' . "\n";
for ($i = 0; $i < $Nb; ++$i) {
$_encryptBlock .= ',' . "\n" . ' ($' . $e . $i . ' & 0xFF000000) ^' . "\n" . ' ($' . $e . ($i + $c[1]) % $Nb . ' & 0x00FF0000) ^' . "\n" . ' ($' . $e . ($i + $c[2]) % $Nb . ' & 0x0000FF00) ^' . "\n" . ' ($' . $e . ($i + $c[3]) % $Nb . ' & 0x000000FF) ^' . "\n" . ' ' . $w[$i] . "\n";
}
$_encryptBlock .= ');';
$init_decryptBlock .= '' . "\n" . ' $dt0 = $self->dt0;' . "\n" . ' $dt1 = $self->dt1;' . "\n" . ' $dt2 = $self->dt2;' . "\n" . ' $dt3 = $self->dt3;' . "\n" . ' $isbox = $self->isbox;';
$s = 'e';
$e = 's';
$wc = $Nb - 1;
$_decryptBlock = '$in = unpack("N*", $in);' . "\n";
for ($i = 0; $i < $Nb; ++$i) {
$_decryptBlock .= '$s' . $i . ' = $in[' . ($i + 1) . '] ^ ' . $dw[++$wc] . ';' . "\n";
}
for ($round = 1; $round < $Nr; ++$round) {
list($s, $e) = array($e, $s);
for ($i = 0; $i < $Nb; ++$i) {
$_decryptBlock .= '$' . $e . $i . ' =' . "\n" . ' $dt0[($' . $s . $i . ' >> 24) & 0xff] ^' . "\n" . ' $dt1[($' . $s . ($Nb + $i - $c[1]) % $Nb . ' >> 16) & 0xff] ^' . "\n" . ' $dt2[($' . $s . ($Nb + $i - $c[2]) % $Nb . ' >> 8) & 0xff] ^' . "\n" . ' $dt3[ $' . $s . ($Nb + $i - $c[3]) % $Nb . ' & 0xff] ^' . "\n" . ' ' . $dw[++$wc] . ';' . "\n" . '';
}
}
for ($i = 0; $i < $Nb; ++$i) {
$_decryptBlock .= '$' . $e . $i . ' =' . "\n" . ' $isbox[ $' . $e . $i . ' & 0xff] |' . "\n" . ' ($isbox[($' . $e . $i . ' >> 8) & 0xff] << 8) |' . "\n" . ' ($isbox[($' . $e . $i . ' >> 16) & 0xff] << 16) |' . "\n" . ' ($isbox[($' . $e . $i . ' >> 24) & 0xff] << 24);' . "\n";
}
$_decryptBlock .= '$in = pack("N*"' . "\n";
for ($i = 0; $i < $Nb; ++$i) {
$_decryptBlock .= ',' . "\n" . ' ($' . $e . $i . ' & 0xFF000000) ^' . "\n" . ' ($' . $e . ($Nb + $i - $c[1]) % $Nb . ' & 0x00FF0000) ^' . "\n" . ' ($' . $e . ($Nb + $i - $c[2]) % $Nb . ' & 0x0000FF00) ^' . "\n" . ' ($' . $e . ($Nb + $i - $c[3]) % $Nb . ' & 0x000000FF) ^' . "\n" . ' ' . $dw[$i] . "\n";
}
$_decryptBlock .= ');';
switch ($mode) {
case CRYPT_RIJNDAEL_MODE_ECB:
$encrypt = $init_encryptBlock . '' . "\n" . ' $ciphertext = "";' . "\n" . ' $text = $self->_pad($text);' . "\n" . ' $plaintext_len = strlen($text);' . "\n" . '' . "\n" . ' for ($i = 0; $i < $plaintext_len; $i+= ' . $block_size . ') {' . "\n" . ' $in = substr($text, $i, ' . $block_size . ');' . "\n" . ' ' . $_encryptBlock . '' . "\n" . ' $ciphertext.= $in;' . "\n" . ' }' . "\n" . ' ' . "\n" . ' return $ciphertext;' . "\n" . ' ';
$decrypt = $init_decryptBlock . '' . "\n" . ' $plaintext = "";' . "\n" . ' $text = str_pad($text, strlen($text) + (' . $block_size . ' - strlen($text) % ' . $block_size . ') % ' . $block_size . ', chr(0));' . "\n" . ' $ciphertext_len = strlen($text);' . "\n" . '' . "\n" . ' for ($i = 0; $i < $ciphertext_len; $i+= ' . $block_size . ') {' . "\n" . ' $in = substr($text, $i, ' . $block_size . ');' . "\n" . ' ' . $_decryptBlock . '' . "\n" . ' $plaintext.= $in;' . "\n" . ' }' . "\n" . '' . "\n" . ' return $self->_unpad($plaintext);' . "\n" . ' ';
break;
case CRYPT_RIJNDAEL_MODE_CBC:
$encrypt = $init_encryptBlock . '' . "\n" . ' $ciphertext = "";' . "\n" . ' $text = $self->_pad($text);' . "\n" . ' $plaintext_len = strlen($text);' . "\n" . '' . "\n" . ' $in = $self->encryptIV;' . "\n" . '' . "\n" . ' for ($i = 0; $i < $plaintext_len; $i+= ' . $block_size . ') {' . "\n" . ' $in = substr($text, $i, ' . $block_size . ') ^ $in;' . "\n" . ' ' . $_encryptBlock . '' . "\n" . ' $ciphertext.= $in;' . "\n" . ' }' . "\n" . '' . "\n" . ' if ($self->continuousBuffer) {' . "\n" . ' $self->encryptIV = $in;' . "\n" . ' }' . "\n" . '' . "\n" . ' return $ciphertext;' . "\n" . ' ';
$decrypt = $init_decryptBlock . '' . "\n" . ' $plaintext = "";' . "\n" . ' $text = str_pad($text, strlen($text) + (' . $block_size . ' - strlen($text) % ' . $block_size . ') % ' . $block_size . ', chr(0));' . "\n" . ' $ciphertext_len = strlen($text);' . "\n" . '' . "\n" . ' $iv = $self->decryptIV;' . "\n" . '' . "\n" . ' for ($i = 0; $i < $ciphertext_len; $i+= ' . $block_size . ') {' . "\n" . ' $in = $block = substr($text, $i, ' . $block_size . ');' . "\n" . ' ' . $_decryptBlock . '' . "\n" . ' $plaintext.= $in ^ $iv;' . "\n" . ' $iv = $block;' . "\n" . ' }' . "\n" . '' . "\n" . ' if ($self->continuousBuffer) {' . "\n" . ' $self->decryptIV = $iv;' . "\n" . ' }' . "\n" . '' . "\n" . ' return $self->_unpad($plaintext);' . "\n" . ' ';
break;
case CRYPT_RIJNDAEL_MODE_CTR:
$encrypt = $init_encryptBlock . '' . "\n" . ' $ciphertext = "";' . "\n" . ' $plaintext_len = strlen($text);' . "\n" . ' $xor = $self->encryptIV;' . "\n" . ' $buffer = &$self->enbuffer;' . "\n" . '' . "\n" . ' if (strlen($buffer["encrypted"])) {' . "\n" . ' for ($i = 0; $i < $plaintext_len; $i+= ' . $block_size . ') {' . "\n" . ' $block = substr($text, $i, ' . $block_size . ');' . "\n" . ' if (strlen($block) > strlen($buffer["encrypted"])) {' . "\n" . ' $in = $self->_generate_xor(' . $block_size . ', $xor);' . "\n" . ' ' . $_encryptBlock . '' . "\n" . ' $buffer["encrypted"].= $in;' . "\n" . ' }' . "\n" . ' $key = $self->_string_shift($buffer["encrypted"], ' . $block_size . ');' . "\n" . ' $ciphertext.= $block ^ $key;' . "\n" . ' }' . "\n" . ' } else {' . "\n" . ' for ($i = 0; $i < $plaintext_len; $i+= ' . $block_size . ') {' . "\n" . ' $block = substr($text, $i, ' . $block_size . ');' . "\n" . ' $in = $self->_generate_xor(' . $block_size . ', $xor);' . "\n" . ' ' . $_encryptBlock . '' . "\n" . ' $key = $in;' . "\n" . ' $ciphertext.= $block ^ $key;' . "\n" . ' }' . "\n" . ' }' . "\n" . ' if ($self->continuousBuffer) {' . "\n" . ' $self->encryptIV = $xor;' . "\n" . ' if ($start = $plaintext_len % ' . $block_size . ') {' . "\n" . ' $buffer["encrypted"] = substr($key, $start) . $buffer["encrypted"];' . "\n" . ' }' . "\n" . ' }' . "\n" . '' . "\n" . ' return $ciphertext;' . "\n" . ' ';
$decrypt = $init_encryptBlock . '' . "\n" . ' $plaintext = "";' . "\n" . ' $ciphertext_len = strlen($text);' . "\n" . ' $xor = $self->decryptIV;' . "\n" . ' $buffer = &$self->debuffer;' . "\n" . '' . "\n" . ' if (strlen($buffer["ciphertext"])) {' . "\n" . ' for ($i = 0; $i < $ciphertext_len; $i+= ' . $block_size . ') {' . "\n" . ' $block = substr($text, $i, ' . $block_size . ');' . "\n" . ' if (strlen($block) > strlen($buffer["ciphertext"])) {' . "\n" . ' $in = $self->_generate_xor(' . $block_size . ', $xor);' . "\n" . ' ' . $_encryptBlock . '' . "\n" . ' $buffer["ciphertext"].= $in;' . "\n" . ' }' . "\n" . ' $key = $self->_string_shift($buffer["ciphertext"], ' . $block_size . ');' . "\n" . ' $plaintext.= $block ^ $key;' . "\n" . ' }' . "\n" . ' } else {' . "\n" . ' for ($i = 0; $i < $ciphertext_len; $i+= ' . $block_size . ') {' . "\n" . ' $block = substr($text, $i, ' . $block_size . ');' . "\n" . ' $in = $self->_generate_xor(' . $block_size . ', $xor);' . "\n" . ' ' . $_encryptBlock . '' . "\n" . ' $key = $in;' . "\n" . ' $plaintext.= $block ^ $key;' . "\n" . ' }' . "\n" . ' }' . "\n" . ' if ($self->continuousBuffer) {' . "\n" . ' $self->decryptIV = $xor;' . "\n" . ' if ($start = $ciphertext_len % ' . $block_size . ') {' . "\n" . ' $buffer["ciphertext"] = substr($key, $start) . $buffer["ciphertext"];' . "\n" . ' }' . "\n" . ' }' . "\n" . ' ' . "\n" . ' return $plaintext;' . "\n" . ' ';
break;
case CRYPT_RIJNDAEL_MODE_CFB:
$encrypt = $init_encryptBlock . '' . "\n" . ' $ciphertext = "";' . "\n" . ' $buffer = &$self->enbuffer;' . "\n" . '' . "\n" . ' if ($self->continuousBuffer) {' . "\n" . ' $iv = &$self->encryptIV;' . "\n" . ' $pos = &$buffer["pos"];' . "\n" . ' } else {' . "\n" . ' $iv = $self->encryptIV;' . "\n" . ' $pos = 0;' . "\n" . ' }' . "\n" . ' $len = strlen($text);' . "\n" . ' $i = 0;' . "\n" . ' if ($pos) {' . "\n" . ' $orig_pos = $pos;' . "\n" . ' $max = ' . $block_size . ' - $pos;' . "\n" . ' if ($len >= $max) {' . "\n" . ' $i = $max;' . "\n" . ' $len-= $max;' . "\n" . ' $pos = 0;' . "\n" . ' } else {' . "\n" . ' $i = $len;' . "\n" . ' $pos+= $len;' . "\n" . ' $len = 0;' . "\n" . ' }' . "\n" . ' $ciphertext = substr($iv, $orig_pos) ^ $text;' . "\n" . ' $iv = substr_replace($iv, $ciphertext, $orig_pos, $i);' . "\n" . ' }' . "\n" . ' while ($len >= ' . $block_size . ') {' . "\n" . ' $in = $iv;' . "\n" . ' ' . $_encryptBlock . ';' . "\n" . ' $iv = $in ^ substr($text, $i, ' . $block_size . ');' . "\n" . ' $ciphertext.= $iv;' . "\n" . ' $len-= ' . $block_size . ';' . "\n" . ' $i+= ' . $block_size . ';' . "\n" . ' }' . "\n" . ' if ($len) {' . "\n" . ' $in = $iv;' . "\n" . ' ' . $_encryptBlock . '' . "\n" . ' $iv = $in;' . "\n" . ' $block = $iv ^ substr($text, $i);' . "\n" . ' $iv = substr_replace($iv, $block, 0, $len);' . "\n" . ' $ciphertext.= $block;' . "\n" . ' $pos = $len;' . "\n" . ' }' . "\n" . ' return $ciphertext;' . "\n" . ' ';
$decrypt = $init_encryptBlock . '' . "\n" . ' $plaintext = "";' . "\n" . ' $buffer = &$self->debuffer;' . "\n" . '' . "\n" . ' if ($self->continuousBuffer) {' . "\n" . ' $iv = &$self->decryptIV;' . "\n" . ' $pos = &$buffer["pos"];' . "\n" . ' } else {' . "\n" . ' $iv = $self->decryptIV;' . "\n" . ' $pos = 0;' . "\n" . ' }' . "\n" . ' $len = strlen($text);' . "\n" . ' $i = 0;' . "\n" . ' if ($pos) {' . "\n" . ' $orig_pos = $pos;' . "\n" . ' $max = ' . $block_size . ' - $pos;' . "\n" . ' if ($len >= $max) {' . "\n" . ' $i = $max;' . "\n" . ' $len-= $max;' . "\n" . ' $pos = 0;' . "\n" . ' } else {' . "\n" . ' $i = $len;' . "\n" . ' $pos+= $len;' . "\n" . ' $len = 0;' . "\n" . ' }' . "\n" . ' $plaintext = substr($iv, $orig_pos) ^ $text;' . "\n" . ' $iv = substr_replace($iv, substr($text, 0, $i), $orig_pos, $i);' . "\n" . ' }' . "\n" . ' while ($len >= ' . $block_size . ') {' . "\n" . ' $in = $iv;' . "\n" . ' ' . $_encryptBlock . '' . "\n" . ' $iv = $in;' . "\n" . ' $cb = substr($text, $i, ' . $block_size . ');' . "\n" . ' $plaintext.= $iv ^ $cb;' . "\n" . ' $iv = $cb;' . "\n" . ' $len-= ' . $block_size . ';' . "\n" . ' $i+= ' . $block_size . ';' . "\n" . ' }' . "\n" . ' if ($len) {' . "\n" . ' $in = $iv;' . "\n" . ' ' . $_encryptBlock . '' . "\n" . ' $iv = $in;' . "\n" . ' $plaintext.= $iv ^ substr($text, $i);' . "\n" . ' $iv = substr_replace($iv, substr($text, $i), 0, $len);' . "\n" . ' $pos = $len;' . "\n" . ' }' . "\n" . '' . "\n" . ' return $plaintext;' . "\n" . ' ';
break;
case CRYPT_RIJNDAEL_MODE_OFB:
$encrypt = $init_encryptBlock . '' . "\n" . ' $ciphertext = "";' . "\n" . ' $plaintext_len = strlen($text);' . "\n" . ' $xor = $self->encryptIV;' . "\n" . ' $buffer = &$self->enbuffer;' . "\n" . '' . "\n" . ' if (strlen($buffer["xor"])) {' . "\n" . ' for ($i = 0; $i < $plaintext_len; $i+= ' . $block_size . ') {' . "\n" . ' $block = substr($text, $i, ' . $block_size . ');' . "\n" . ' if (strlen($block) > strlen($buffer["xor"])) {' . "\n" . ' $in = $xor;' . "\n" . ' ' . $_encryptBlock . '' . "\n" . ' $xor = $in;' . "\n" . ' $buffer["xor"].= $xor;' . "\n" . ' }' . "\n" . ' $key = $self->_string_shift($buffer["xor"], ' . $block_size . ');' . "\n" . ' $ciphertext.= $block ^ $key;' . "\n" . ' }' . "\n" . ' } else {' . "\n" . ' for ($i = 0; $i < $plaintext_len; $i+= ' . $block_size . ') {' . "\n" . ' $in = $xor;' . "\n" . ' ' . $_encryptBlock . '' . "\n" . ' $xor = $in;' . "\n" . ' $ciphertext.= substr($text, $i, ' . $block_size . ') ^ $xor;' . "\n" . ' }' . "\n" . ' $key = $xor;' . "\n" . ' }' . "\n" . ' if ($self->continuousBuffer) {' . "\n" . ' $self->encryptIV = $xor;' . "\n" . ' if ($start = $plaintext_len % ' . $block_size . ') {' . "\n" . ' $buffer["xor"] = substr($key, $start) . $buffer["xor"];' . "\n" . ' }' . "\n" . ' }' . "\n" . ' return $ciphertext;' . "\n" . ' ';
$decrypt = $init_encryptBlock . '' . "\n" . ' $plaintext = "";' . "\n" . ' $ciphertext_len = strlen($text);' . "\n" . ' $xor = $self->decryptIV;' . "\n" . ' $buffer = &$self->debuffer;' . "\n" . '' . "\n" . ' if (strlen($buffer["xor"])) {' . "\n" . ' for ($i = 0; $i < $ciphertext_len; $i+= ' . $block_size . ') {' . "\n" . ' $block = substr($text, $i, ' . $block_size . ');' . "\n" . ' if (strlen($block) > strlen($buffer["xor"])) {' . "\n" . ' $in = $xor;' . "\n" . ' ' . $_encryptBlock . '' . "\n" . ' $xor = $in;' . "\n" . ' $buffer["xor"].= $xor;' . "\n" . ' }' . "\n" . ' $key = $self->_string_shift($buffer["xor"], ' . $block_size . ');' . "\n" . ' $plaintext.= $block ^ $key;' . "\n" . ' }' . "\n" . ' } else {' . "\n" . ' for ($i = 0; $i < $ciphertext_len; $i+= ' . $block_size . ') {' . "\n" . ' $in = $xor;' . "\n" . ' ' . $_encryptBlock . '' . "\n" . ' $xor = $in;' . "\n" . ' $plaintext.= substr($text, $i, ' . $block_size . ') ^ $xor;' . "\n" . ' }' . "\n" . ' $key = $xor;' . "\n" . ' }' . "\n" . ' if ($self->continuousBuffer) {' . "\n" . ' $self->decryptIV = $xor;' . "\n" . ' if ($start = $ciphertext_len % ' . $block_size . ') {' . "\n" . ' $buffer["xor"] = substr($key, $start) . $buffer["xor"];' . "\n" . ' }' . "\n" . ' }' . "\n" . ' return $plaintext;' . "\n" . ' ';
break;
}
$lambda_functions[$code_hash] = create_function('$action, &$self, $text', 'if ($action == "encrypt") { ' . $encrypt . ' } else { ' . $decrypt . ' }');
}
$this->inline_crypt = $lambda_functions[$code_hash];
}
开发者ID:fkssei,项目名称:pigcms10,代码行数:94,代码来源:Crypt_Rijndael.php
示例11: analyse_db_file
function analyse_db_file($timestamp, $res)
{
global $updraftplus;
$backup = $updraftplus->get_backup_history($timestamp);
if (!isset($backup['nonce']) || !isset($backup['db'])) {
return;
}
$updraft_dir = $updraftplus->backups_dir_location();
$db_file = $updraft_dir . '/' . $backup['db'];
if (!is_readable($db_file)) {
return;
}
// Encrypted - decrypt it
if ($updraftplus->is_db_encrypted($db_file)) {
$encryption = UpdraftPlus_Options::get_updraft_option('updraft_encryptionphrase');
if (!$encryption) {
echo sprintf(__('Error: %s', 'updraftplus'), __('Decryption failed. The database file is encrypted, but you have no encryption key entered.', 'updraftplus'));
return;
}
require_once UPDRAFTPLUS_DIR . '/includes/phpseclib/Crypt/Rijndael.php';
$rijndael = new Crypt_Rijndael();
// Get decryption key
$rijndael->setKey($encryption);
$ciphertext = $rijndael->decrypt(file_get_contents($db_file));
if ($ciphertext) {
$new_db_file = $updraft_dir . '/' . basename($db_file, '.crypt');
if (!file_put_contents($new_db_file, $ciphertext)) {
echo sprintf(__('Error: %s', 'updraftplus'), __('Failed to write out the decrypted database to the filesystem.', 'updraftplus'));
return false;
}
$db_file = $new_db_file;
} else {
echo sprintf(__('Error: %s', 'updraftplus'), __('Decryption failed. The most likely cause is that you used the wrong key.', 'updraftplus'));
return false;
}
}
$dbhandle = gzopen($db_file, 'r');
if (!$dbhandle) {
echo sprintf(__('Error: %s', 'updraftplus'), __('Failed to open database file.', 'updraftplus'));
return false;
}
# Analyse the file, print the results.
$line = 0;
$old_siteurl = '';
$old_table_prefix = '';
$old_siteinfo = array();
$gathering_siteinfo = true;
while (!gzeof($dbhandle) && $line < 100) {
$line++;
// Up to 1Mb
$buffer = rtrim(gzgets($dbhandle, 1048576));
// Comments are what we are interested in
if (substr($buffer, 0, 1) == '#') {
// TODO: More information - e.g. WordPress version. Warn if importing new into old.
if ('' == $old_siteurl && preg_match('/^\\# Backup of: (http(.*))$/', $buffer, $matches)) {
$old_siteurl = $matches[1];
echo __('Backup of:', 'updraftplus') . ' ' . htmlspecialchars($old_siteurl) . '<br>';
// Check for should-be migration
if ($old_siteurl != site_url()) {
echo apply_filters('updraftplus_dbscan_urlchange', sprintf(__('Error: %s', 'updraftplus'), '<a href="http://updraftplus.com/shop/migrator/">' . __('This backup set is from a different site - this is not a restoration, but a migration. You need the Migrator add-on in order to make this work.', 'updraftplus') . '</a>'), $old_siteurl, $res);
}
} elseif ('' == $old_table_prefix && preg_match('/^\\# Table prefix: (\\S+)$/', $buffer, $matches)) {
$old_table_prefix = $matches[1];
// echo '<strong>'.__('Old table prefix:', 'updraftplus').'</strong> '.htmlspecialchars($old_table_prefix).'<br>';
} elseif ($gathering_siteinfo && preg_match('/^\\# Site info: (\\S+)$/', $buffer, $matches)) {
if ('end' == $matches[1]) {
$gathering_siteinfo = false;
// Sanity checks
if (isset($old_siteinfo['multisite']) && !$old_siteinfo['multisite'] && is_multisite()) {
// Just need to check that you're crazy
if (!defined('UPDRAFTPLUS_EXPERIMENTAL_IMPORTINTOMULTISITE') || UPDRAFTPLUS_EXPERIMENTAL_IMPORTINTOMULTISITE != true) {
echo sprintf(__('Error: %s', 'updraftplus'), __('You are running on WordPress multisite - but your backup is not of a multisite site.', 'updraftplus'));
return false;
}
// Got the needed code?
if (!class_exists('UpdraftPlusAddOn_MultiSite') || !class_exists('UpdraftPlus_Addons_Migrator')) {
echo sprintf(__('Error: %s', 'updraftplus'), __('To import an ordinary WordPress site into a multisite installation requires both the multisite and migrator add-ons.', 'updraftplus'));
return false;
}
}
} elseif (preg_match('/^([^=]+)=(.*)$/', $matches[1], $kvmatches)) {
$key = $kvmatches[1];
$val = $kvmatches[2];
if ('multisite' == $key && $val) {
echo '<strong>' . __('Site information:', 'updraftplus') . '</strong>' . ' is a WordPress Network<br>';
}
$old_siteinfo[$key] = $val;
}
}
}
}
@gzclose($dbhandle);
}
开发者ID:brandmobility,项目名称:kikbak,代码行数:93,代码来源:admin.php
示例12: inline_crypt_setup
/**
* Creates performance-optimized function for de/encrypt(), storing it in $this->inline_crypt
*
* @see Crypt_Rijndael::encrypt()
* @see Crypt_Rijndael::decrypt()
* @access private
*/
function inline_crypt_setup()
{
// Note: inline_crypt_setup() will be called only if $this->changed === true
// So here we are'nt under the same heavy timing-stress as we are in _de/encryptBlock() or de/encrypt().
// However...the here generated function- $code, stored as php callback in $this->inline_crypt, must work as fast as even possible.
$lambda_functions =& Crypt_Rijndael::get_lambda_functions();
$block_size = $this->block_size;
$mode = $this->mode;
// The first 5 generated $lambda_functions will use the key-words hardcoded for better performance.
// For memory reason we limit those ultra-optimized function code to 5.
// After that, we use pure (extracted) integer vars for the key-words which is faster than accessing them via array.
if (count($lambda_functions) < 5) {
$w = $this->w;
$dw = $this->dw;
$init_encryptBlock = '';
$init_decryptBlock = '';
} else {
for ($i = 0, $cw = count($this->w); $i < $cw; ++$i) {
$w[] = '$w_' . $i;
$dw[] = '$dw_' . $i;
}
$init_encryptBlock = 'extract($self->w, EXTR_PREFIX_ALL, "w");';
$init_decryptBlock = 'extract($self->dw, EXTR_PREFIX_ALL, "dw");';
}
$code_hash = md5("{$mode}, {$block_size}, " . implode(',', $w));
if (!isset($lambda_functions[$code_hash])) {
$Nr = $this->Nr;
$Nb = $this->Nb;
$c = $this->c;
// Generating encrypt code:
$init_encryptBlock .= '
$t0 = $self->t0;
$t1 = $self->t1;
$t2 = $self->t2;
$t3 = $self->t3;
$sbox = $self->sbox;';
$s = 'e';
$e = 's';
$wc = $Nb - 1;
// Preround: addRoundKey
$_encryptBlock = '$in = unpack("N*", $in);' . "\n";
for ($i = 0; $i < $Nb; ++$i) {
$_encryptBlock .= '$s' . $i . ' = $in[' . ($i + 1) . '] ^ ' . $w[++$wc] . ";\n";
}
// Mainrounds: shiftRows + subWord + mixColumns + addRoundKey
for ($round = 1; $round < $Nr; ++$round) {
list($s, $e) = array($e, $s);
for ($i = 0; $i < $Nb; ++$i) {
$_encryptBlock .= '$' . $e . $i . ' =
$t0[($' . $s . $i . ' >> 24) & 0xff] ^
$t1[($' . $s . ($i + $c[1]) % $Nb . ' >> 16) & 0xff] ^
$t2[($' . $s . ($i + $c[2]) % $Nb . ' >> 8) & 0xff] ^
$t3[ $' . $s . ($i + $c[3]) % $Nb . ' & 0xff] ^
' . $w[++$wc] . ";\n";
}
}
// Finalround: subWord + shiftRows + addRoundKey
for ($i = 0; $i < $Nb; ++$i) {
$_encryptBlock .= '$' . $e . $i . ' =
$sbox[ $' . $e . $i . ' & 0xff] |
($sbox[($' . $e . $i . ' >> 8) & 0xff] << 8) |
($sbox[($' . $e . $i . ' >> 16) & 0xff] << 16) |
($sbox[($' . $e . $i . ' >> 24) & 0xff] << 24);' . "\n";
}
$_encryptBlock .= '$in = pack("N*"' . "\n";
for ($i = 0; $i < $Nb; ++$i) {
$_encryptBlock .= ',
($' . $e . $i . ' & 0xFF000000) ^
($' . $e . ($i + $c[1]) % $Nb . ' & 0x00FF0000) ^
($' . $e . ($i + $c[2]) % $Nb . ' & 0x0000FF00) ^
($' . $e . ($i + $c[3]) % $Nb . ' & 0x000000FF) ^
' . $w[$i] . "\n";
}
$_encryptBlock .= ');';
//.........这里部分代码省略.........
开发者ID:Toxatoxa,项目名称:Sample-Code,代码行数:101,代码来源:rijndael.php
示例13: decrypt_message
public function decrypt_message($message)
{
if (!$this->key_local) {
throw new Exception('No decryption key has been set');
}
$this->ensure_crypto_loaded();
$rsa = new Crypt_RSA();
$rij = new Crypt_Rijndael();
// Extract the Symmetric Key
$len = substr($message, 0, 3);
$len = hexdec($len);
$sym_key = substr($message, 3, $len);
// Extract the encrypted message
$cipherlen = substr($message, $len + 3, 16);
$cipherlen = hexdec($cipherlen);
$ciphertext = substr($message, $len + 19, $cipherlen);
$ciphertext = base64_decode($ciphertext);
// Decrypt the encrypted symmetric key
$rsa->loadKey($this->key_local);
$sym_key = base64_decode($sym_key);
$sym_key = $rsa->decrypt($sym_key);
// Decrypt the message
$rij->setKey($sym_key);
return $rij->decrypt($ciphertext);
}
开发者ID:beyond-z,项目名称:braven,代码行数:25,代码来源:class-udrpc.php
示例14: decrypt_message
public function decrypt_message($message)
{
if (!$this->key_local) {
throw new Exception('No decryption key has been set');
}
$this->ensure_crypto_loaded();
$rsa = new Crypt_RSA();
if (defined('UDRPC_PHPSECLIB_ENCRYPTION_MODE')) {
$rsa->setEncryptionMode(UDRPC_PHPSECLIB_ENCRYPTION_MODE);
}
// Defaults to CRYPT
|
请发表评论