當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。