3v4l.org

run code in 300+ PHP versions simultaneously
<?php $message = 'test'; $key = openssl_random_pseudo_bytes(16); $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH_COMPAT, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $cipher = mcrypt_encrypt( MCRYPT_BLOWFISH_COMPAT, $key, $message, MCRYPT_MODE_ECB, $iv ); $plain = openssl_decrypt( $cipher, 'BF-ECB', $key, OPENSSL_RAW_DATA||OPENSSL_ZERO_PADDING, $iv ); var_dump( $message, bin2hex($cipher), $plain, mb_strlen($message, '8bit'), mb_strlen($plain, '8bit'), $message === $plain );
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 47) Position 1 = 34, Position 2 = 36
Branch analysis from position: 34
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 36
filename:       /in/D4Kn0
function name:  (null)
number of ops:  61
compiled vars:  !0 = $message, !1 = $key, !2 = $iv_size, !3 = $iv, !4 = $cipher, !5 = $plain
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, 'test'
    3     1        INIT_FCALL_BY_NAME                                       'openssl_random_pseudo_bytes'
          2        SEND_VAL_EX                                              16
          3        DO_FCALL                                      0  $7      
          4        ASSIGN                                                   !1, $7
    4     5        INIT_FCALL_BY_NAME                                       'mcrypt_get_iv_size'
          6        FETCH_CONSTANT                                   ~9      'MCRYPT_BLOWFISH_COMPAT'
          7        SEND_VAL_EX                                              ~9
          8        FETCH_CONSTANT                                   ~10     'MCRYPT_MODE_ECB'
          9        SEND_VAL_EX                                              ~10
         10        DO_FCALL                                      0  $11     
         11        ASSIGN                                                   !2, $11
    5    12        INIT_FCALL_BY_NAME                                       'mcrypt_create_iv'
         13        SEND_VAR_EX                                              !2
         14        FETCH_CONSTANT                                   ~13     'MCRYPT_RAND'
         15        SEND_VAL_EX                                              ~13
         16        DO_FCALL                                      0  $14     
         17        ASSIGN                                                   !3, $14
    7    18        INIT_FCALL_BY_NAME                                       'mcrypt_encrypt'
    8    19        FETCH_CONSTANT                                   ~16     'MCRYPT_BLOWFISH_COMPAT'
         20        SEND_VAL_EX                                              ~16
         21        SEND_VAR_EX                                              !1
         22        SEND_VAR_EX                                              !0
   11    23        FETCH_CONSTANT                                   ~17     'MCRYPT_MODE_ECB'
         24        SEND_VAL_EX                                              ~17
    8    25        SEND_VAR_EX                                              !3
    7    26        DO_FCALL                                      0  $18     
         27        ASSIGN                                                   !4, $18
   15    28        INIT_FCALL_BY_NAME                                       'openssl_decrypt'
   16    29        SEND_VAR_EX                                              !4
   17    30        SEND_VAL_EX                                              'BF-ECB'
   16    31        SEND_VAR_EX                                              !1
   19    32        FETCH_CONSTANT                                   ~20     'OPENSSL_RAW_DATA'
         33      > JMPNZ_EX                                         ~20     ~20, ->36
         34    >   FETCH_CONSTANT                                   ~21     'OPENSSL_ZERO_PADDING'
         35        BOOL                                             ~20     ~21
         36    >   SEND_VAL_EX                                              ~20
   16    37        SEND_VAR_EX                                              !3
   15    38        DO_FCALL                                      0  $22     
         39        ASSIGN                                                   !5, $22
   23    40        INIT_FCALL                                               'var_dump'
   24    41        SEND_VAR                                                 !0
   25    42        INIT_FCALL                                               'bin2hex'
         43        SEND_VAR                                                 !4
         44        DO_ICALL                                         $24     
         45        SEND_VAR                                                 $24
   26    46        SEND_VAR                                                 !5
   27    47        INIT_FCALL                                               'mb_strlen'
         48        SEND_VAR                                                 !0
         49        SEND_VAL                                                 '8bit'
         50        DO_ICALL                                         $25     
         51        SEND_VAR                                                 $25
   28    52        INIT_FCALL                                               'mb_strlen'
         53        SEND_VAR                                                 !5
         54        SEND_VAL                                                 '8bit'
         55        DO_ICALL                                         $26     
         56        SEND_VAR                                                 $26
   29    57        IS_IDENTICAL                                     ~27     !0, !5
         58        SEND_VAL                                                 ~27
   23    59        DO_ICALL                                                 
   30    60      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
160.52 ms | 1017 KiB | 16 Q