3v4l.org

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

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
168.57 ms | 1404 KiB | 25 Q