当前位置: 首页>>代码示例>>PHP>>正文


PHP Crypt_Blowfish::get_lambda_functions方法代码示例

本文整理汇总了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 .= '
//.........这里部分代码省略.........
开发者ID:Toxatoxa,项目名称:Sample-Code,代码行数:101,代码来源:blowfish.php


注:本文中的Crypt_Blowfish::get_lambda_functions方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。