本文整理汇总了PHP中Crypt_Blowfish::get_lambda_functions方法的典型用法代码示例。如果您正苦于以下问题:PHP Crypt_Blowfish::get_lambda_functions方法的具体用法?PHP Crypt_Blowfish::get_lambda_functions怎么用?PHP Crypt_Blowfish::get_lambda_functions使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Crypt_Blowfish
的用法示例。
在下文中一共展示了Crypt_Blowfish::get_lambda_functions方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: inline_crypt_setup
/**
* Creates performance-optimized function for de/encrypt(), storing it in $this->inline_crypt
*
* @access private
*/
function inline_crypt_setup()
{
/*{{{*/
$lambda_functions =& Crypt_Blowfish::get_lambda_functions();
$block_size = 8;
$mode = $this->mode;
$code_hash = "{$mode}";
if (!isset($lambda_functions[$code_hash])) {
$init_cryptBlock = '
extract($self->bctx["p"], EXTR_PREFIX_ALL, "p");
extract($self->bctx["sb"], EXTR_PREFIX_ALL, "sb");
';
// Generating encrypt code:
$_encryptBlock = '
$in = unpack("N*", $in);
$l = $in[1];
$r = $in[2];
';
for ($i = 0; $i < 16; $i += 2) {
$_encryptBlock .= '
$l^= $p_' . $i . ';
$r^= ($sb_0[$l >> 24 & 0xff] +
$sb_1[$l >> 16 & 0xff] ^
$sb_2[$l >> 8 & 0xff]) +
$sb_3[$l & 0xff];
$r^= $p_' . ($i + 1) . ';
$l^= ($sb_0[$r >> 24 & 0xff] +
$sb_1[$r >> 16 & 0xff] ^
$sb_2[$r >> 8 & 0xff]) +
$sb_3[$r & 0xff];
';
}
$_encryptBlock .= '
$in = pack("N*", $r ^ $p_17, $l ^ $p_16);
';
// Generating decrypt code:
$_decryptBlock = '
$in = unpack("N*", $in);
$l = $in[1];
$r = $in[2];
';
for ($i = 17; $i > 2; $i -= 2) {
$_decryptBlock .= '
$l^= $p_' . $i . ';
$r^= ($sb_0[$l >> 24 & 0xff] +
$sb_1[$l >> 16 & 0xff] ^
$sb_2[$l >> 8 & 0xff]) +
$sb_3[$l & 0xff];
$r^= $p_' . ($i - 1) . ';
$l^= ($sb_0[$r >> 24 & 0xff] +
$sb_1[$r >> 16 & 0xff] ^
$sb_2[$r >> 8 & 0xff]) +
$sb_3[$r & 0xff];
';
}
$_decryptBlock .= '
//.........这里部分代码省略.........