3v4l.org

run code in 300+ PHP versions simultaneously
<?php define('SALT', '1234'); $string = ' string to be encrypted '; // note the spaces $iv = mcrypt_create_iv( mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_DEV_URANDOM ); $encrypted = base64_encode( $iv . mcrypt_encrypt( MCRYPT_RIJNDAEL_128, hash('sha256', SALT, true), $string, MCRYPT_MODE_CBC, $iv ) ); $data = base64_decode($encrypted); $iv = substr($data, 0, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC)); $decrypted = rtrim( mcrypt_decrypt( MCRYPT_RIJNDAEL_128, hash('sha256', SALT, true), substr($data, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC)), MCRYPT_MODE_CBC, $iv ), "\0" ); echo 'Encrypted:' . "\n"; var_dump($encrypted); echo "\n"; echo 'Decrypted:' . "\n"; var_dump($decrypted);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kRldC
function name:  (null)
number of ops:  93
compiled vars:  !0 = $string, !1 = $iv, !2 = $encrypted, !3 = $data, !4 = $decrypted
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   INIT_FCALL                                               'define'
          1        SEND_VAL                                                 'SALT'
          2        SEND_VAL                                                 '1234'
          3        DO_ICALL                                                 
    5     4        ASSIGN                                                   !0, '+string+to+be+encrypted+'
    8     5        INIT_FCALL_BY_NAME                                       'mcrypt_create_iv'
    9     6        INIT_FCALL_BY_NAME                                       'mcrypt_get_iv_size'
          7        FETCH_CONSTANT                                   ~7      'MCRYPT_RIJNDAEL_128'
          8        SEND_VAL_EX                                              ~7
          9        FETCH_CONSTANT                                   ~8      'MCRYPT_MODE_CBC'
         10        SEND_VAL_EX                                              ~8
         11        DO_FCALL                                      0  $9      
         12        SEND_VAR_NO_REF_EX                                       $9
   10    13        FETCH_CONSTANT                                   ~10     'MCRYPT_DEV_URANDOM'
         14        SEND_VAL_EX                                              ~10
    8    15        DO_FCALL                                      0  $11     
         16        ASSIGN                                                   !1, $11
   13    17        INIT_FCALL                                               'base64_encode'
   15    18        INIT_FCALL_BY_NAME                                       'mcrypt_encrypt'
   16    19        FETCH_CONSTANT                                   ~13     'MCRYPT_RIJNDAEL_128'
         20        SEND_VAL_EX                                              ~13
   17    21        INIT_FCALL                                               'hash'
         22        SEND_VAL                                                 'sha256'
         23        FETCH_CONSTANT                                   ~14     'SALT'
         24        SEND_VAL                                                 ~14
         25        SEND_VAL                                                 <true>
         26        DO_ICALL                                         $15     
         27        SEND_VAR_NO_REF_EX                                       $15
   16    28        SEND_VAR_EX                                              !0
   19    29        FETCH_CONSTANT                                   ~16     'MCRYPT_MODE_CBC'
         30        SEND_VAL_EX                                              ~16
   16    31        SEND_VAR_EX                                              !1
   15    32        DO_FCALL                                      0  $17     
   16    33        CONCAT                                           ~18     !1, $17
         34        SEND_VAL                                                 ~18
   13    35        DO_ICALL                                         $19     
         36        ASSIGN                                                   !2, $19
   25    37        INIT_FCALL                                               'base64_decode'
         38        SEND_VAR                                                 !2
         39        DO_ICALL                                         $21     
         40        ASSIGN                                                   !3, $21
   26    41        INIT_FCALL                                               'substr'
         42        SEND_VAR                                                 !3
         43        SEND_VAL                                                 0
         44        INIT_FCALL_BY_NAME                                       'mcrypt_get_iv_size'
         45        FETCH_CONSTANT                                   ~23     'MCRYPT_RIJNDAEL_128'
         46        SEND_VAL_EX                                              ~23
         47        FETCH_CONSTANT                                   ~24     'MCRYPT_MODE_CBC'
         48        SEND_VAL_EX                                              ~24
         49        DO_FCALL                                      0  $25     
         50        SEND_VAR                                                 $25
         51        DO_ICALL                                         $26     
         52        ASSIGN                                                   !1, $26
   28    53        INIT_FCALL                                               'rtrim'
   29    54        INIT_FCALL_BY_NAME                                       'mcrypt_decrypt'
   30    55        FETCH_CONSTANT                                   ~28     'MCRYPT_RIJNDAEL_128'
         56        SEND_VAL_EX                                              ~28
   31    57        INIT_FCALL                                               'hash'
         58        SEND_VAL                                                 'sha256'
         59        FETCH_CONSTANT                                   ~29     'SALT'
         60        SEND_VAL                                                 ~29
         61        SEND_VAL                                                 <true>
         62        DO_ICALL                                         $30     
         63        SEND_VAR_NO_REF_EX                                       $30
   32    64        INIT_FCALL                                               'substr'
         65        SEND_VAR                                                 !3
         66        INIT_FCALL_BY_NAME                                       'mcrypt_get_iv_size'
         67        FETCH_CONSTANT                                   ~31     'MCRYPT_RIJNDAEL_128'
         68        SEND_VAL_EX                                              ~31
         69        FETCH_CONSTANT                                   ~32     'MCRYPT_MODE_CBC'
         70        SEND_VAL_EX                                              ~32
         71        DO_FCALL                                      0  $33     
         72        SEND_VAR                                                 $33
         73        DO_ICALL                                         $34     
         74        SEND_VAR_NO_REF_EX                                       $34
   33    75        FETCH_CONSTANT                                   ~35     'MCRYPT_MODE_CBC'
         76        SEND_VAL_EX                                              ~35
   30    77        SEND_VAR_EX                                              !1
   29    78        DO_FCALL                                      0  $36     
   30    79        SEND_VAR                                                 $36
   36    80        SEND_VAL                                                 '%00'
   28    81        DO_ICALL                                         $37     
         82        ASSIGN                                                   !4, $37
   41    83        ECHO                                                     'Encrypted%3A%0A'
   42    84        INIT_FCALL                                               'var_dump'
         85        SEND_VAR                                                 !2
         86        DO_ICALL                                                 
   44    87        ECHO                                                     '%0A'
   46    88        ECHO                                                     'Decrypted%3A%0A'
   47    89        INIT_FCALL                                               'var_dump'
         90        SEND_VAR                                                 !4
         91        DO_ICALL                                                 
         92      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
150.32 ms | 1026 KiB | 20 Q