3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** Aes encryption */ class AES { const M_CBC = 'cbc'; const M_CFB = 'cfb'; const M_ECB = 'ecb'; const M_NOFB = 'nofb'; const M_OFB = 'ofb'; const M_STREAM = 'stream'; protected $key; protected $cipher; protected $data; protected $mode; protected $IV; /** * * @param type $data * @param type $key * @param type $blockSize * @param type $mode */ function __construct($data = null, $key = null, $blockSize = null, $mode = null) { $this->setData($data); $this->setKey($key); $this->setBlockSize($blockSize); $this->setMode($mode); $this->setIV(""); } /** * * @param type $data */ public function setData($data) { $this->data = $data; } /** * * @param type $key */ public function setKey($key) { $this->key = $key; } /** * * @param type $blockSize */ public function setBlockSize($blockSize) { switch ($blockSize) { case 128: $this->cipher = MCRYPT_RIJNDAEL_128; break; case 192: $this->cipher = MCRYPT_RIJNDAEL_192; break; case 256: $this->cipher = MCRYPT_RIJNDAEL_256; break; } } /** * * @param type $mode */ public function setMode($mode) { switch ($mode) { case AES::M_CBC: $this->mode = MCRYPT_MODE_CBC; break; case AES::M_CFB: $this->mode = MCRYPT_MODE_CFB; break; case AES::M_ECB: $this->mode = MCRYPT_MODE_ECB; break; case AES::M_NOFB: $this->mode = MCRYPT_MODE_NOFB; break; case AES::M_OFB: $this->mode = MCRYPT_MODE_OFB; break; case AES::M_STREAM: $this->mode = MCRYPT_MODE_STREAM; break; default: $this->mode = MCRYPT_MODE_ECB; break; } } /** * * @return boolean */ public function validateParams() { if ($this->data != null && $this->key != null && $this->cipher != null) { return true; } else { return FALSE; } } public function setIV($IV) { $this->IV = $IV; } protected function getIV() { if ($this->IV == "") { $this->IV = mcrypt_create_iv(mcrypt_get_iv_size($this->cipher, $this->mode), MCRYPT_RAND); } return $this->IV; } /** * @return type * @throws Exception */ public function encrypt() { if ($this->validateParams()) { return trim(base64_encode( mcrypt_encrypt( $this->cipher, $this->key, $this->data, $this->mode, $this->getIV()))); } else { throw new Exception('Invlid params!'); } } /** * * @return type * @throws Exception */ public function decrypt() { if ($this->validateParams()) { return trim(mcrypt_decrypt( $this->cipher, $this->key, base64_decode($this->data), $this->mode, $this->getIV())); } else { throw new Exception('Invlid params!'); } } } function encode($text) { return bin2hex($text); } function decode($base16){ return pack("H*", $base16); } function encrypt($key, $link){ $cp = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', 'cbc', ''); @mcrypt_generic_init($cp, $key, $key); $enc = mcrypt_generic($cp, $link); mcrypt_generic_deinit($cp); mcrypt_module_close($cp); return $enc; } $key="31323334353637383930393837363534"; $link="62QTUQPXD5PTTmyJPr6wh/b7fdQR94C+MEwg1XEvXI2nV4Lg38yp6AKLW6/ZWW5Z8c+CjfCWZkJoBkpl/p2SS7rp4GAuUR07OKu9rDp/2yoX14y/zx13w62yt6DIRvqWpk/Z4B1EFgSaky6UIHHefubrpnJtAmdq4hhtZXbrNvZvxn6DG74ZJC4B2Qwp3PM1EYz7PiK1MQv2p6dcLdi5J1seJUp9oICdKKYF/hDnNXC6UQSOKz1QDD8oWd4glsp1WGOiR7XXat4llB3g+rZV2suupoR6jpFDAv5DK3GUjEZGUUAgnhNMbHvRVFfce80LOQn7Lh+TUvrXqfE45fzgJcf6qswWHdFCtF8mOUQvjsr67wkkBTn4shNG1bWYF5oXbBOArt+R9dk5IluD2mDGiOj3FymwPQFd+nrHFYIsnSMHs3VC7jpa8nVHo2zYajeXc43dgMiH4mZwfYica1myoKqAfnCpokhaSaOtbE0SKOdhJw2Hw90IChEwvlWFoZmeW1MlA3W9CYIGdR4Xwxl7TXNgw2w9EXwXc0N8WQV1bK7AUB3F722HJMgiLCqjs9UzSTk6yhBs4LNdKnW+F44iQEV7vFibvGVbwanjypxX+E4aydaPPFA3TCpZY+pEo2IY3mfmnH8oyswlp55SvIvLBU4IHNNdfv8ONZzUiasaQSZxQ0K6aVm8nbjUBZEfCX3h5N1h047Vt0sVSI19Bsv9mDzIgXc1jnDREvDdhQM97lzzctm+fyjAPnXmScuqPnhn"; $blockSize = 128; $aes = new AES($link, $key, $blockSize); $enc = $aes->encrypt(); $aes->setData($enc); $dec = $aes->decrypt(); echo "After encryption: ".$enc."\r\n"; echo "After decryption: ".$dec."\r\n"; echo base64_encode(encrypt(encode($key), $link));
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/k5hjJ
function name:  (null)
number of ops:  36
compiled vars:  !0 = $key, !1 = $link, !2 = $blockSize, !3 = $aes, !4 = $enc, !5 = $dec
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  173     0  E >   ASSIGN                                                   !0, '31323334353637383930393837363534'
  174     1        ASSIGN                                                   !1, '62QTUQPXD5PTTmyJPr6wh%2Fb7fdQR94C%2BMEwg1XEvXI2nV4Lg38yp6AKLW6%2FZWW5Z8c%2BCjfCWZkJoBkpl%2Fp2SS7rp4GAuUR07OKu9rDp%2F2yoX14y%2Fzx13w62yt6DIRvqWpk%2FZ4B1EFgSaky6UIHHefubrpnJtAmdq4hhtZXbrNvZvxn6DG74ZJC4B2Qwp3PM1EYz7PiK1MQv2p6dcLdi5J1seJUp9oICdKKYF%2FhDnNXC6UQSOKz1QDD8oWd4glsp1WGOiR7XXat4llB3g%2BrZV2suupoR6jpFDAv5DK3GUjEZGUUAgnhNMbHvRVFfce80LOQn7Lh%2BTUvrXqfE45fzgJcf6qswWHdFCtF8mOUQvjsr67wkkBTn4shNG1bWYF5oXbBOArt%2BR9dk5IluD2mDGiOj3FymwPQFd%2BnrHFYIsnSMHs3VC7jpa8nVHo2zYajeXc43dgMiH4mZwfYica1myoKqAfnCpokhaSaOtbE0SKOdhJw2Hw90IChEwvlWFoZmeW1MlA3W9CYIGdR4Xwxl7TXNgw2w9EXwXc0N8WQV1bK7AUB3F722HJMgiLCqjs9UzSTk6yhBs4LNdKnW%2BF44iQEV7vFibvGVbwanjypxX%2BE4aydaPPFA3TCpZY%2BpEo2IY3mfmnH8oyswlp55SvIvLBU4IHNNdfv8ONZzUiasaQSZxQ0K6aVm8nbjUBZEfCX3h5N1h047Vt0sVSI19Bsv9mDzIgXc1jnDREvDdhQM97lzzctm%2BfyjAPnXmScuqPnhn'
  176     2        ASSIGN                                                   !2, 128
  177     3        NEW                                              $9      'AES'
          4        SEND_VAR_EX                                              !1
          5        SEND_VAR_EX                                              !0
          6        SEND_VAR_EX                                              !2
          7        DO_FCALL                                      0          
          8        ASSIGN                                                   !3, $9
  178     9        INIT_METHOD_CALL                                         !3, 'encrypt'
         10        DO_FCALL                                      0  $12     
         11        ASSIGN                                                   !4, $12
  180    12        INIT_METHOD_CALL                                         !3, 'setData'
         13        SEND_VAR_EX                                              !4
         14        DO_FCALL                                      0          
  181    15        INIT_METHOD_CALL                                         !3, 'decrypt'
         16        DO_FCALL                                      0  $15     
         17        ASSIGN                                                   !5, $15
  183    18        CONCAT                                           ~17     'After+encryption%3A+', !4
         19        CONCAT                                           ~18     ~17, '%0D%0A'
         20        ECHO                                                     ~18
  184    21        CONCAT                                           ~19     'After+decryption%3A+', !5
         22        CONCAT                                           ~20     ~19, '%0D%0A'
         23        ECHO                                                     ~20
  186    24        INIT_FCALL                                               'base64_encode'
         25        INIT_FCALL                                               'encrypt'
         26        INIT_FCALL                                               'encode'
         27        SEND_VAR                                                 !0
         28        DO_FCALL                                      0  $21     
         29        SEND_VAR                                                 $21
         30        SEND_VAR                                                 !1
         31        DO_FCALL                                      0  $22     
         32        SEND_VAR                                                 $22
         33        DO_ICALL                                         $23     
         34        ECHO                                                     $23
         35      > RETURN                                                   1

Function encode:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/k5hjJ
function name:  encode
number of ops:  6
compiled vars:  !0 = $text
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  154     0  E >   RECV                                             !0      
  156     1        INIT_FCALL                                               'bin2hex'
          2        SEND_VAR                                                 !0
          3        DO_ICALL                                         $1      
          4      > RETURN                                                   $1
  157     5*     > RETURN                                                   null

End of function encode

Function decode:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/k5hjJ
function name:  decode
number of ops:  7
compiled vars:  !0 = $base16
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  159     0  E >   RECV                                             !0      
  160     1        INIT_FCALL                                               'pack'
          2        SEND_VAL                                                 'H%2A'
          3        SEND_VAR                                                 !0
          4        DO_ICALL                                         $1      
          5      > RETURN                                                   $1
  161     6*     > RETURN                                                   null

End of function decode

Function encrypt:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/k5hjJ
function name:  encrypt
number of ops:  30
compiled vars:  !0 = $key, !1 = $link, !2 = $cp, !3 = $enc
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  163     0  E >   RECV                                             !0      
          1        RECV                                             !1      
  164     2        INIT_FCALL_BY_NAME                                       'mcrypt_module_open'
          3        FETCH_CONSTANT                                   ~4      'MCRYPT_RIJNDAEL_128'
          4        SEND_VAL_EX                                              ~4
          5        SEND_VAL_EX                                              ''
          6        SEND_VAL_EX                                              'cbc'
          7        SEND_VAL_EX                                              ''
          8        DO_FCALL                                      0  $5      
          9        ASSIGN                                                   !2, $5
  165    10        BEGIN_SILENCE                                    ~7      
         11        INIT_FCALL_BY_NAME                                       'mcrypt_generic_init'
         12        SEND_VAR_EX                                              !2
         13        SEND_VAR_EX                                              !0
         14        SEND_VAR_EX                                              !0
         15        DO_FCALL                                      0          
         16        END_SILENCE                                              ~7
  166    17        INIT_FCALL_BY_NAME                                       'mcrypt_generic'
         18        SEND_VAR_EX                                              !2
         19        SEND_VAR_EX                                              !1
         20        DO_FCALL                                      0  $9      
         21        ASSIGN                                                   !3, $9
  167    22        INIT_FCALL_BY_NAME                                       'mcrypt_generic_deinit'
         23        SEND_VAR_EX                                              !2
         24        DO_FCALL                                      0          
  168    25        INIT_FCALL_BY_NAME                                       'mcrypt_module_close'
         26        SEND_VAR_EX                                              !2
         27        DO_FCALL                                      0          
  170    28      > RETURN                                                   !3
  171    29*     > RETURN                                                   null

End of function encrypt

Class AES:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/k5hjJ
function name:  __construct
number of ops:  20
compiled vars:  !0 = $data, !1 = $key, !2 = $blockSize, !3 = $mode
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   26     0  E >   RECV_INIT                                        !0      null
          1        RECV_INIT                                        !1      null
          2        RECV_INIT                                        !2      null
          3        RECV_INIT                                        !3      null
   27     4        INIT_METHOD_CALL                                         'setData'
          5        SEND_VAR_EX                                              !0
          6        DO_FCALL                                      0          
   28     7        INIT_METHOD_CALL                                         'setKey'
          8        SEND_VAR_EX                                              !1
          9        DO_FCALL                                      0          
   29    10        INIT_METHOD_CALL                                         'setBlockSize'
         11        SEND_VAR_EX                                              !2
         12        DO_FCALL                                      0          
   30    13        INIT_METHOD_CALL                                         'setMode'
         14        SEND_VAR_EX                                              !3
         15        DO_FCALL                                      0          
   31    16        INIT_METHOD_CALL                                         'setIV'
         17        SEND_VAL_EX                                              ''
         18        DO_FCALL                                      0          
   32    19      > RETURN                                                   null

End of function __construct

Function setdata:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/k5hjJ
function name:  setData
number of ops:  4
compiled vars:  !0 = $data
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   38     0  E >   RECV                                             !0      
   39     1        ASSIGN_OBJ                                               'data'
          2        OP_DATA                                                  !0
   40     3      > RETURN                                                   null

End of function setdata

Function setkey:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/k5hjJ
function name:  setKey
number of ops:  4
compiled vars:  !0 = $key
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   46     0  E >   RECV                                             !0      
   47     1        ASSIGN_OBJ                                               'key'
          2        OP_DATA                                                  !0
   48     3      > RETURN                                                   null

End of function setkey

Function setblocksize:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 44) Position 1 = 3, Position 2 = 8
Branch analysis from position: 3
2 jumps found. (Code = 44) Position 1 = 5, Position 2 = 12
Branch analysis from position: 5
2 jumps found. (Code = 44) Position 1 = 7, Position 2 = 16
Branch analysis from position: 7
1 jumps found. (Code = 42) Position 1 = 20
Branch analysis from position: 20
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 16
1 jumps found. (Code = 42) Position 1 = 20
Branch analysis from position: 20
Branch analysis from position: 12
1 jumps found. (Code = 42) Position 1 = 20
Branch analysis from position: 20
Branch analysis from position: 8
1 jumps found. (Code = 42) Position 1 = 20
Branch analysis from position: 20
filename:       /in/k5hjJ
function name:  setBlockSize
number of ops:  21
compiled vars:  !0 = $blockSize
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   54     0  E >   RECV                                             !0      
   56     1        IS_EQUAL                                                 !0, 128
          2      > JMPNZ                                                    ~1, ->8
   60     3    >   IS_EQUAL                                                 !0, 192
          4      > JMPNZ                                                    ~1, ->12
   64     5    >   IS_EQUAL                                                 !0, 256
          6      > JMPNZ                                                    ~1, ->16
          7    > > JMP                                                      ->20
   57     8    >   FETCH_CONSTANT                                   ~3      'MCRYPT_RIJNDAEL_128'
          9        ASSIGN_OBJ                                               'cipher'
         10        OP_DATA                                                  ~3
   58    11      > JMP                                                      ->20
   61    12    >   FETCH_CONSTANT                                   ~5      'MCRYPT_RIJNDAEL_192'
         13        ASSIGN_OBJ                                               'cipher'
         14        OP_DATA                                                  ~5
   62    15      > JMP                                                      ->20
   65    16    >   FETCH_CONSTANT                                   ~7      'MCRYPT_RIJNDAEL_256'
         17        ASSIGN_OBJ                                               'cipher'
         18        OP_DATA                                                  ~7
   66    19      > JMP                                                      ->20
   68    20    > > RETURN                                                   null

End of function setblocksize

Function setmode:
Finding entry points
Branch analysis from position: 0
8 jumps found. (Code = 188) Position 1 = 15, Position 2 = 19, Position 3 = 23, Position 4 = 27, Position 5 = 31, Position 6 = 35, Position 7 = 39, Position 8 = 2
Branch analysis from position: 15
1 jumps found. (Code = 42) Position 1 = 43
Branch analysis from position: 43
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 19
1 jumps found. (Code = 42) Position 1 = 43
Branch analysis from position: 43
Branch analysis from position: 23
1 jumps found. (Code = 42) Position 1 = 43
Branch analysis from position: 43
Branch analysis from position: 27
1 jumps found. (Code = 42) Position 1 = 43
Branch analysis from position: 43
Branch analysis from position: 31
1 jumps found. (Code = 42) Position 1 = 43
Branch analysis from position: 43
Branch analysis from position: 35
1 jumps found. (Code = 42) Position 1 = 43
Branch analysis from position: 43
Branch analysis from position: 39
1 jumps found. (Code = 42) Position 1 = 43
Branch analysis from position: 43
Branch analysis from position: 2
2 jumps found. (Code = 44) Position 1 = 4, Position 2 = 15
Branch analysis from position: 4
2 jumps found. (Code = 44) Position 1 = 6, Position 2 = 19
Branch analysis from position: 6
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 23
Branch analysis from position: 8
2 jumps found. (Code = 44) Position 1 = 10, Position 2 = 27
Branch analysis from position: 10
2 jumps found. (Code = 44) Position 1 = 12, Position 2 = 31
Branch analysis from position: 12
2 jumps found. (Code = 44) Position 1 = 14, Position 2 = 35
Branch analysis from position: 14
1 jumps found. (Code = 42) Position 1 = 39
Branch analysis from position: 39
Branch analysis from position: 35
Branch analysis from position: 31
Branch analysis from position: 27
Branch analysis from position: 23
Branch analysis from position: 19
Branch analysis from position: 15
filename:       /in/k5hjJ
function name:  setMode
number of ops:  44
compiled vars:  !0 = $mode
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   74     0  E >   RECV                                             !0      
   75     1      > SWITCH_STRING                                            !0, [ 'cbc':->15, 'cfb':->19, 'ecb':->23, 'nofb':->27, 'ofb':->31, 'stream':->35, ], ->39
          2    >   IS_EQUAL                                                 !0, 'cbc'
          3      > JMPNZ                                                    ~1, ->15
          4    >   IS_EQUAL                                                 !0, 'cfb'
          5      > JMPNZ                                                    ~1, ->19
          6    >   IS_EQUAL                                                 !0, 'ecb'
          7      > JMPNZ                                                    ~1, ->23
          8    >   IS_EQUAL                                                 !0, 'nofb'
          9      > JMPNZ                                                    ~1, ->27
         10    >   IS_EQUAL                                                 !0, 'ofb'
         11      > JMPNZ                                                    ~1, ->31
         12    >   IS_EQUAL                                                 !0, 'stream'
         13      > JMPNZ                                                    ~1, ->35
         14    > > JMP                                                      ->39
   77    15    >   FETCH_CONSTANT                                   ~3      'MCRYPT_MODE_CBC'
         16        ASSIGN_OBJ                                               'mode'
         17        OP_DATA                                                  ~3
   78    18      > JMP                                                      ->43
   80    19    >   FETCH_CONSTANT                                   ~5      'MCRYPT_MODE_CFB'
         20        ASSIGN_OBJ                                               'mode'
         21        OP_DATA                                                  ~5
   81    22      > JMP                                                      ->43
   83    23    >   FETCH_CONSTANT                                   ~7      'MCRYPT_MODE_ECB'
         24        ASSIGN_OBJ                                               'mode'
         25        OP_DATA                                                  ~7
   84    26      > JMP                                                      ->43
   86    27    >   FETCH_CONSTANT                                   ~9      'MCRYPT_MODE_NOFB'
         28        ASSIGN_OBJ                                               'mode'
         29        OP_DATA                                                  ~9
   87    30      > JMP                                                      ->43
   89    31    >   FETCH_CONSTANT                                   ~11     'MCRYPT_MODE_OFB'
         32        ASSIGN_OBJ                                               'mode'
         33        OP_DATA                                                  ~11
   90    34      > JMP                                                      ->43
   92    35    >   FETCH_CONSTANT                                   ~13     'MCRYPT_MODE_STREAM'
         36        ASSIGN_OBJ                                               'mode'
         37        OP_DATA                                                  ~13
   93    38      > JMP                                                      ->43
   95    39    >   FETCH_CONSTANT                                   ~15     'MCRYPT_MODE_ECB'
         40        ASSIGN_OBJ                                               'mode'
         41        OP_DATA                                                  ~15
   96    42      > JMP                                                      ->43
   98    43    > > RETURN                                                   null

End of function setmode

Function validateparams:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 46) Position 1 = 3, Position 2 = 6
Branch analysis from position: 3
2 jumps found. (Code = 46) Position 1 = 7, Position 2 = 10
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 13
Branch analysis from position: 11
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 13
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 10
Branch analysis from position: 6
filename:       /in/k5hjJ
function name:  validateParams
number of ops:  15
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  105     0  E >   FETCH_OBJ_R                                      ~0      'data'
          1        IS_NOT_EQUAL                                     ~1      ~0, null
          2      > JMPZ_EX                                          ~1      ~1, ->6
  106     3    >   FETCH_OBJ_R                                      ~2      'key'
          4        IS_NOT_EQUAL                                     ~3      ~2, null
          5        BOOL                                             ~1      ~3
          6    > > JMPZ_EX                                          ~1      ~1, ->10
  107     7    >   FETCH_OBJ_R                                      ~4      'cipher'
          8        IS_NOT_EQUAL                                     ~5      ~4, null
          9        BOOL                                             ~1      ~5
         10    > > JMPZ                                                     ~1, ->13
  108    11    > > RETURN                                                   <true>
         12*       JMP                                                      ->14
  110    13    > > RETURN                                                   <false>
  112    14*     > RETURN                                                   null

End of function validateparams

Function setiv:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/k5hjJ
function name:  setIV
number of ops:  4
compiled vars:  !0 = $IV
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  114     0  E >   RECV                                             !0      
  115     1        ASSIGN_OBJ                                               'IV'
          2        OP_DATA                                                  !0
  116     3      > RETURN                                                   null

End of function setiv

Function getiv:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 18
Branch analysis from position: 3
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 18
filename:       /in/k5hjJ
function name:  getIV
number of ops:  21
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  118     0  E >   FETCH_OBJ_R                                      ~0      'IV'
          1        IS_EQUAL                                                 ~0, ''
          2      > JMPZ                                                     ~1, ->18
  119     3    >   INIT_FCALL_BY_NAME                                       'mcrypt_create_iv'
          4        INIT_FCALL_BY_NAME                                       'mcrypt_get_iv_size'
          5        CHECK_FUNC_ARG                                           
          6        FETCH_OBJ_FUNC_ARG                               $3      'cipher'
          7        SEND_FUNC_ARG                                            $3
          8        CHECK_FUNC_ARG                                           
          9        FETCH_OBJ_FUNC_ARG                               $4      'mode'
         10        SEND_FUNC_ARG                                            $4
         11        DO_FCALL                                      0  $5      
         12        SEND_VAR_NO_REF_EX                                       $5
         13        FETCH_CONSTANT                                   ~6      'MCRYPT_RAND'
         14        SEND_VAL_EX                                              ~6
         15        DO_FCALL                                      0  $7      
         16        ASSIGN_OBJ                                               'IV'
         17        OP_DATA                                                  $7
  121    18    >   FETCH_OBJ_R                                      ~8      'IV'
         19      > RETURN                                                   ~8
  122    20*     > RETURN                                                   null

End of function getiv

Function encrypt:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 28
Branch analysis from position: 3
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 28
1 jumps found. (Code = 108) Position 1 = -2
filename:       /in/k5hjJ
function name:  encrypt
number of ops:  33
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  130     0  E >   INIT_METHOD_CALL                                         'validateParams'
          1        DO_FCALL                                      0  $0      
          2      > JMPZ                                                     $0, ->28
  131     3    >   INIT_FCALL                                               'trim'
          4        INIT_FCALL                                               'base64_encode'
  132     5        INIT_FCALL_BY_NAME                                       'mcrypt_encrypt'
          6        CHECK_FUNC_ARG                                           
  133     7        FETCH_OBJ_FUNC_ARG                               $1      'cipher'
          8        SEND_FUNC_ARG                                            $1
          9        CHECK_FUNC_ARG                                           
         10        FETCH_OBJ_FUNC_ARG                               $2      'key'
         11        SEND_FUNC_ARG                                            $2
         12        CHECK_FUNC_ARG                                           
         13        FETCH_OBJ_FUNC_ARG                               $3      'data'
         14        SEND_FUNC_ARG                                            $3
         15        CHECK_FUNC_ARG                                           
         16        FETCH_OBJ_FUNC_ARG                               $4      'mode'
         17        SEND_FUNC_ARG                                            $4
         18        INIT_METHOD_CALL                                         'getIV'
         19        DO_FCALL                                      0  $5      
         20        SEND_VAR_NO_REF_EX                                       $5
         21        DO_FCALL                                      0  $6      
         22        SEND_VAR                                                 $6
         23        DO_ICALL                                         $7      
         24        SEND_VAR                                                 $7
         25        DO_ICALL                                         $8      
         26      > RETURN                                                   $8
         27*       JMP                                                      ->32
  135    28    >   NEW                                              $9      'Exception'
         29        SEND_VAL_EX                                              'Invlid+params%21'
         30        DO_FCALL                                      0          
         31      > THROW                                         0          $9
  137    32*     > RETURN                                                   null

End of function encrypt

Function decrypt:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 27
Branch analysis from position: 3
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 27
1 jumps found. (Code = 108) Position 1 = -2
filename:       /in/k5hjJ
function name:  decrypt
number of ops:  32
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  144     0  E >   INIT_METHOD_CALL                                         'validateParams'
          1        DO_FCALL                                      0  $0      
          2      > JMPZ                                                     $0, ->27
  145     3    >   INIT_FCALL                                               'trim'
          4        INIT_FCALL_BY_NAME                                       'mcrypt_decrypt'
          5        CHECK_FUNC_ARG                                           
  146     6        FETCH_OBJ_FUNC_ARG                               $1      'cipher'
          7        SEND_FUNC_ARG                                            $1
          8        CHECK_FUNC_ARG                                           
          9        FETCH_OBJ_FUNC_ARG                               $2      'key'
         10        SEND_FUNC_ARG                                            $2
         11        INIT_FCALL                                               'base64_decode'
         12        FETCH_OBJ_R                                      ~3      'data'
         13        SEND_VAL                                                 ~3
         14        DO_ICALL                                         $4      
         15        SEND_VAR_NO_REF_EX                                       $4
         16        CHECK_FUNC_ARG                                           
         17        FETCH_OBJ_FUNC_ARG                               $5      'mode'
         18        SEND_FUNC_ARG                                            $5
         19        INIT_METHOD_CALL                                         'getIV'
         20        DO_FCALL                                      0  $6      
         21        SEND_VAR_NO_REF_EX                                       $6
         22        DO_FCALL                                      0  $7      
         23        SEND_VAR                                                 $7
         24        DO_ICALL                                         $8      
         25      > RETURN                                                   $8
         26*       JMP                                                      ->31
  148    27    >   NEW                                              $9      'Exception'
         28        SEND_VAL_EX                                              'Invlid+params%21'
         29        DO_FCALL                                      0          
         30      > THROW                            

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
160.57 ms | 1422 KiB | 25 Q