3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Crypter implements ICrypter { private $Key; private $Algo; public function __construct($Algo = MCRYPT_BLOWFISH) { $this->Key = substr('key', 0, mcrypt_get_key_size($Algo, MCRYPT_MODE_ECB)); $this->Algo = $Algo; } public function Encrypt($data) { //$iv_size = mcrypt_get_iv_size($this->Algo, MCRYPT_MODE_ECB); //$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $blocksize = mcrypt_get_block_size('blowfish', 'ecb'); // get block size $pkcs = $blocksize - (strlen($data) % $blocksize); // get pkcs5 pad length $data.= str_repeat(chr($pkcs), $pkcs); // append pkcs5 padding to the data $crypt = mcrypt_encrypt($this->Algo, $this->Key, $data, MCRYPT_MODE_ECB); return rtrim(base64_encode($crypt)); } public function Decrypt($data) { $crypt = base64_decode($data); $iv_size = mcrypt_get_iv_size($this->Algo, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $decrypt = mcrypt_decrypt($this->Algo, $this->Key, $crypt, MCRYPT_MODE_ECB, $iv); return rtrim($decrypt); } }
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/tqAdF
function name:  (null)
number of ops:  2
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   DECLARE_CLASS                                            'crypter'
   37     1      > RETURN                                                   1

Class Crypter:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/tqAdF
function name:  __construct
number of ops:  16
compiled vars:  !0 = $Algo
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    7     0  E >   RECV_INIT                                        !0      <const ast>
    9     1        INIT_FCALL                                               'substr'
          2        SEND_VAL                                                 'key'
          3        SEND_VAL                                                 0
          4        INIT_FCALL_BY_NAME                                       'mcrypt_get_key_size'
          5        SEND_VAR_EX                                              !0
          6        FETCH_CONSTANT                                   ~2      'MCRYPT_MODE_ECB'
          7        SEND_VAL_EX                                              ~2
          8        DO_FCALL                                      0  $3      
          9        SEND_VAR                                                 $3
         10        DO_ICALL                                         $4      
         11        ASSIGN_OBJ                                               'Key'
         12        OP_DATA                                                  $4
   10    13        ASSIGN_OBJ                                               'Algo'
         14        OP_DATA                                                  !0
   12    15      > RETURN                                                   null

End of function __construct

Function encrypt:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/tqAdF
function name:  Encrypt
number of ops:  38
compiled vars:  !0 = $data, !1 = $blocksize, !2 = $pkcs, !3 = $crypt
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   14     0  E >   RECV                                             !0      
   19     1        INIT_FCALL_BY_NAME                                       'mcrypt_get_block_size'
          2        SEND_VAL_EX                                              'blowfish'
          3        SEND_VAL_EX                                              'ecb'
          4        DO_FCALL                                      0  $4      
          5        ASSIGN                                                   !1, $4
   20     6        STRLEN                                           ~6      !0
          7        MOD                                              ~7      ~6, !1
          8        SUB                                              ~8      !1, ~7
          9        ASSIGN                                                   !2, ~8
   21    10        INIT_FCALL                                               'str_repeat'
         11        INIT_FCALL                                               'chr'
         12        SEND_VAR                                                 !2
         13        DO_ICALL                                         $10     
         14        SEND_VAR                                                 $10
         15        SEND_VAR                                                 !2
         16        DO_ICALL                                         $11     
         17        ASSIGN_OP                                     8          !0, $11
   24    18        INIT_FCALL_BY_NAME                                       'mcrypt_encrypt'
         19        CHECK_FUNC_ARG                                           
         20        FETCH_OBJ_FUNC_ARG                               $13     'Algo'
         21        SEND_FUNC_ARG                                            $13
         22        CHECK_FUNC_ARG                                           
         23        FETCH_OBJ_FUNC_ARG                               $14     'Key'
         24        SEND_FUNC_ARG                                            $14
         25        SEND_VAR_EX                                              !0
         26        FETCH_CONSTANT                                   ~15     'MCRYPT_MODE_ECB'
         27        SEND_VAL_EX                                              ~15
         28        DO_FCALL                                      0  $16     
         29        ASSIGN                                                   !3, $16
   25    30        INIT_FCALL                                               'rtrim'
         31        INIT_FCALL                                               'base64_encode'
         32        SEND_VAR                                                 !3
         33        DO_ICALL                                         $18     
         34        SEND_VAR                                                 $18
         35        DO_ICALL                                         $19     
         36      > RETURN                                                   $19
   27    37*     > RETURN                                                   null

End of function encrypt

Function decrypt:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/tqAdF
function name:  Decrypt
number of ops:  37
compiled vars:  !0 = $data, !1 = $crypt, !2 = $iv_size, !3 = $iv, !4 = $decrypt
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   29     0  E >   RECV                                             !0      
   31     1        INIT_FCALL                                               'base64_decode'
          2        SEND_VAR                                                 !0
          3        DO_ICALL                                         $5      
          4        ASSIGN                                                   !1, $5
   32     5        INIT_FCALL_BY_NAME                                       'mcrypt_get_iv_size'
          6        CHECK_FUNC_ARG                                           
          7        FETCH_OBJ_FUNC_ARG                               $7      'Algo'
          8        SEND_FUNC_ARG                                            $7
          9        FETCH_CONSTANT                                   ~8      'MCRYPT_MODE_ECB'
         10        SEND_VAL_EX                                              ~8
         11        DO_FCALL                                      0  $9      
         12        ASSIGN                                                   !2, $9
   33    13        INIT_FCALL_BY_NAME                                       'mcrypt_create_iv'
         14        SEND_VAR_EX                                              !2
         15        FETCH_CONSTANT                                   ~11     'MCRYPT_RAND'
         16        SEND_VAL_EX                                              ~11
         17        DO_FCALL                                      0  $12     
         18        ASSIGN                                                   !3, $12
   34    19        INIT_FCALL_BY_NAME                                       'mcrypt_decrypt'
         20        CHECK_FUNC_ARG                                           
         21        FETCH_OBJ_FUNC_ARG                               $14     'Algo'
         22        SEND_FUNC_ARG                                            $14
         23        CHECK_FUNC_ARG                                           
         24        FETCH_OBJ_FUNC_ARG                               $15     'Key'
         25        SEND_FUNC_ARG                                            $15
         26        SEND_VAR_EX                                              !1
         27        FETCH_CONSTANT                                   ~16     'MCRYPT_MODE_ECB'
         28        SEND_VAL_EX                                              ~16
         29        SEND_VAR_EX                                              !3
         30        DO_FCALL                                      0  $17     
         31        ASSIGN                                                   !4, $17
   35    32        INIT_FCALL                                               'rtrim'
         33        SEND_VAR                                                 !4
         34        DO_ICALL                                         $19     
         35      > RETURN                                                   $19
   36    36*     > RETURN                                                   null

End of function decrypt

End of class Crypter.

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
155.17 ms | 1404 KiB | 25 Q