3v4l.org

run code in 300+ PHP versions simultaneously
<?php $key = 'secret'; $input = 'My secret string!'; $iv = NULL; // MCrypt $handle = mcrypt_module_open(MCRYPT_BLOWFISH, '', MCRYPT_MODE_ECB, ''); // PKCS#7 padding //$bsize = mcrypt_enc_get_block_size($handle); //$pad = $bsize - (strlen($input) % $bsize); //$input .= str_repeat(chr($pad), $pad); // IV //$ivsize = mcrypt_enc_get_iv_size($handle); //$iv = mcrypt_create_iv($ivsize, MCRYPT_DEV_URANDOM); // Encrypt mcrypt_generic_init($handle, $key, $iv); $output = mcrypt_generic($handle, $input); mcrypt_generic_deinit($handle); mcrypt_module_close($handle); echo "MCrypt:\n", // "\tIV: ", bin2hex($iv), " (", $ivsize, " bytes)\n", "\tInput: ", bin2hex($input), "\n", "\tOutput: ", bin2hex($output), "\n\n"; //$output = $iv.$output; // OpenSSL // IV //$ivsize = openssl_cipher_iv_length('bf-ecb'); //$iv = substr($output, 0, $ivsize); //$output = substr($output, $ivsize); $input = openssl_decrypt($output, 'bf-ecb', $key, OPENSSL_RAW_DATA, $iv); echo "OpenSSL:\n", // "\tIV: ", bin2hex($iv), " (", $ivsize, " bytes)\n", "\tOutput: ", bin2hex($output), "\n", "\tInput: ", bin2hex($input), "\n\n"; empty($input) && var_dump(openssl_error_string());
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 46) Position 1 = 65, Position 2 = 71
Branch analysis from position: 65
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 71
filename:       /in/iAjfW
function name:  (null)
number of ops:  72
compiled vars:  !0 = $key, !1 = $input, !2 = $iv, !3 = $handle, !4 = $output
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, 'secret'
    3     1        ASSIGN                                                   !1, 'My+secret+string%21'
    4     2        ASSIGN                                                   !2, null
    7     3        INIT_FCALL_BY_NAME                                       'mcrypt_module_open'
          4        FETCH_CONSTANT                                   ~8      'MCRYPT_BLOWFISH'
          5        SEND_VAL_EX                                              ~8
          6        SEND_VAL_EX                                              ''
          7        FETCH_CONSTANT                                   ~9      'MCRYPT_MODE_ECB'
          8        SEND_VAL_EX                                              ~9
          9        SEND_VAL_EX                                              ''
         10        DO_FCALL                                      0  $10     
         11        ASSIGN                                                   !3, $10
   19    12        INIT_FCALL_BY_NAME                                       'mcrypt_generic_init'
         13        SEND_VAR_EX                                              !3
         14        SEND_VAR_EX                                              !0
         15        SEND_VAR_EX                                              !2
         16        DO_FCALL                                      0          
   20    17        INIT_FCALL_BY_NAME                                       'mcrypt_generic'
         18        SEND_VAR_EX                                              !3
         19        SEND_VAR_EX                                              !1
         20        DO_FCALL                                      0  $13     
         21        ASSIGN                                                   !4, $13
   21    22        INIT_FCALL_BY_NAME                                       'mcrypt_generic_deinit'
         23        SEND_VAR_EX                                              !3
         24        DO_FCALL                                      0          
   22    25        INIT_FCALL_BY_NAME                                       'mcrypt_module_close'
         26        SEND_VAR_EX                                              !3
         27        DO_FCALL                                      0          
   24    28        ECHO                                                     'MCrypt%3A%0A'
   26    29        ECHO                                                     '%09Input%3A+'
         30        INIT_FCALL                                               'bin2hex'
         31        SEND_VAR                                                 !1
         32        DO_ICALL                                         $17     
         33        ECHO                                                     $17
         34        ECHO                                                     '%0A'
   27    35        ECHO                                                     '%09Output%3A+'
         36        INIT_FCALL                                               'bin2hex'
         37        SEND_VAR                                                 !4
         38        DO_ICALL                                         $18     
         39        ECHO                                                     $18
         40        ECHO                                                     '%0A%0A'
   37    41        INIT_FCALL_BY_NAME                                       'openssl_decrypt'
         42        SEND_VAR_EX                                              !4
         43        SEND_VAL_EX                                              'bf-ecb'
         44        SEND_VAR_EX                                              !0
         45        FETCH_CONSTANT                                   ~19     'OPENSSL_RAW_DATA'
         46        SEND_VAL_EX                                              ~19
         47        SEND_VAR_EX                                              !2
         48        DO_FCALL                                      0  $20     
         49        ASSIGN                                                   !1, $20
   39    50        ECHO                                                     'OpenSSL%3A%0A'
   41    51        ECHO                                                     '%09Output%3A+'
         52        INIT_FCALL                                               'bin2hex'
         53        SEND_VAR                                                 !4
         54        DO_ICALL                                         $22     
         55        ECHO                                                     $22
         56        ECHO                                                     '%0A'
   42    57        ECHO                                                     '%09Input%3A+'
         58        INIT_FCALL                                               'bin2hex'
         59        SEND_VAR                                                 !1
         60        DO_ICALL                                         $23     
         61        ECHO                                                     $23
         62        ECHO                                                     '%0A%0A'
   44    63        ISSET_ISEMPTY_CV                                 ~24     !1
         64      > JMPZ_EX                                          ~24     ~24, ->71
         65    >   INIT_FCALL                                               'var_dump'
         66        INIT_FCALL_BY_NAME                                       'openssl_error_string'
         67        DO_FCALL                                      0  $25     
         68        SEND_VAR                                                 $25
         69        DO_ICALL                                         $26     
         70        BOOL                                             ~24     $26
         71    > > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
161.14 ms | 1400 KiB | 17 Q