3v4l.org

run code in 300+ PHP versions simultaneously
<?php var_dump(extension_loaded('mcrypt')); var_dump(extension_loaded('openssl')); $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 = 77, Position 2 = 83
Branch analysis from position: 77
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 83
filename:       /in/42uF3
function name:  (null)
number of ops:  84
compiled vars:  !0 = $key, !1 = $input, !2 = $iv, !3 = $handle, !4 = $output
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   INIT_FCALL                                               'var_dump'
          1        INIT_FCALL                                               'extension_loaded'
          2        SEND_VAL                                                 'mcrypt'
          3        DO_ICALL                                         $5      
          4        SEND_VAR                                                 $5
          5        DO_ICALL                                                 
    3     6        INIT_FCALL                                               'var_dump'
          7        INIT_FCALL                                               'extension_loaded'
          8        SEND_VAL                                                 'openssl'
          9        DO_ICALL                                         $7      
         10        SEND_VAR                                                 $7
         11        DO_ICALL                                                 
    5    12        ASSIGN                                                   !0, 'secret'
    6    13        ASSIGN                                                   !1, 'My+secret+string%21'
    7    14        ASSIGN                                                   !2, null
   10    15        INIT_FCALL_BY_NAME                                       'mcrypt_module_open'
         16        FETCH_CONSTANT                                   ~12     'MCRYPT_BLOWFISH'
         17        SEND_VAL_EX                                              ~12
         18        SEND_VAL_EX                                              ''
         19        FETCH_CONSTANT                                   ~13     'MCRYPT_MODE_ECB'
         20        SEND_VAL_EX                                              ~13
         21        SEND_VAL_EX                                              ''
         22        DO_FCALL                                      0  $14     
         23        ASSIGN                                                   !3, $14
   22    24        INIT_FCALL_BY_NAME                                       'mcrypt_generic_init'
         25        SEND_VAR_EX                                              !3
         26        SEND_VAR_EX                                              !0
         27        SEND_VAR_EX                                              !2
         28        DO_FCALL                                      0          
   23    29        INIT_FCALL_BY_NAME                                       'mcrypt_generic'
         30        SEND_VAR_EX                                              !3
         31        SEND_VAR_EX                                              !1
         32        DO_FCALL                                      0  $17     
         33        ASSIGN                                                   !4, $17
   24    34        INIT_FCALL_BY_NAME                                       'mcrypt_generic_deinit'
         35        SEND_VAR_EX                                              !3
         36        DO_FCALL                                      0          
   25    37        INIT_FCALL_BY_NAME                                       'mcrypt_module_close'
         38        SEND_VAR_EX                                              !3
         39        DO_FCALL                                      0          
   27    40        ECHO                                                     'MCrypt%3A%0A'
   29    41        ECHO                                                     '%09Input%3A+'
         42        INIT_FCALL                                               'bin2hex'
         43        SEND_VAR                                                 !1
         44        DO_ICALL                                         $21     
         45        ECHO                                                     $21
         46        ECHO                                                     '%0A'
   30    47        ECHO                                                     '%09Output%3A+'
         48        INIT_FCALL                                               'bin2hex'
         49        SEND_VAR                                                 !4
         50        DO_ICALL                                         $22     
         51        ECHO                                                     $22
         52        ECHO                                                     '%0A%0A'
   40    53        INIT_FCALL_BY_NAME                                       'openssl_decrypt'
         54        SEND_VAR_EX                                              !4
         55        SEND_VAL_EX                                              'bf-ecb'
         56        SEND_VAR_EX                                              !0
         57        FETCH_CONSTANT                                   ~23     'OPENSSL_RAW_DATA'
         58        SEND_VAL_EX                                              ~23
         59        SEND_VAR_EX                                              !2
         60        DO_FCALL                                      0  $24     
         61        ASSIGN                                                   !1, $24
   42    62        ECHO                                                     'OpenSSL%3A%0A'
   44    63        ECHO                                                     '%09Output%3A+'
         64        INIT_FCALL                                               'bin2hex'
         65        SEND_VAR                                                 !4
         66        DO_ICALL                                         $26     
         67        ECHO                                                     $26
         68        ECHO                                                     '%0A'
   45    69        ECHO                                                     '%09Input%3A+'
         70        INIT_FCALL                                               'bin2hex'
         71        SEND_VAR                                                 !1
         72        DO_ICALL                                         $27     
         73        ECHO                                                     $27
         74        ECHO                                                     '%0A%0A'
   47    75        ISSET_ISEMPTY_CV                                 ~28     !1
         76      > JMPZ_EX                                          ~28     ~28, ->83
         77    >   INIT_FCALL                                               'var_dump'
         78        INIT_FCALL_BY_NAME                                       'openssl_error_string'
         79        DO_FCALL                                      0  $29     
         80        SEND_VAR                                                 $29
         81        DO_ICALL                                         $30     
         82        BOOL                                             ~28     $30
         83    > > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
153.37 ms | 1400 KiB | 19 Q