3v4l.org

run code in 300+ PHP versions simultaneously
<?php $key1 = "this is a secret key"; $key2 = "this is the second secret key"; $input = "Let us meet at 9 o'clock at the secret place."; $length = strlen($input); /* Open the cipher */ $td = mcrypt_module_open('rijndael-256', '', 'cbc', ''); /* Create the IV and determine the keysize length, use MCRYPT_RAND * on Windows instead */ $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND); $ks = mcrypt_enc_get_key_size($td); /* Create key */ $key1 = md5($key1); $key2 = md5($key2); $key = substr($key1, 0, $ks/2) . substr(strtoupper($key2), (round(strlen($key2) / 2)), $ks/2); $key = substr($key.$key1.$key2.strtoupper($key1),0,$ks); /* Intialize encryption */ mcrypt_generic_init($td, $key, $iv); /* Encrypt data */ $encrypted = mcrypt_generic($td, $input); /* Terminate encryption handler */ mcrypt_generic_deinit($td); /* Initialize encryption module for decryption */ mcrypt_generic_init($td, $key, $iv); /* Decrypt encrypted string */ $decrypted = mdecrypt_generic($td, $encrypted); /* Terminate decryption handle and close module */ mcrypt_generic_deinit($td); mcrypt_module_close($td); /* Show string */ echo "Text: ".substr($decrypted,0,$length) . "<br>"; echo "Encoded: ".$encrypted ."<br>"; echo "<br>key1: $key1 <br>key2: $key2<br>created key: $key";
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/DhQQe
function name:  (null)
number of ops:  115
compiled vars:  !0 = $key1, !1 = $key2, !2 = $input, !3 = $length, !4 = $td, !5 = $iv, !6 = $ks, !7 = $key, !8 = $encrypted, !9 = $decrypted
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, 'this+is+a+secret+key'
    3     1        ASSIGN                                                   !1, 'this+is+the+second+secret+key'
    4     2        ASSIGN                                                   !2, 'Let+us+meet+at+9+o%27clock+at+the+secret+place.'
    5     3        STRLEN                                           ~13     !2
          4        ASSIGN                                                   !3, ~13
    8     5        INIT_FCALL_BY_NAME                                       'mcrypt_module_open'
          6        SEND_VAL_EX                                              'rijndael-256'
          7        SEND_VAL_EX                                              ''
          8        SEND_VAL_EX                                              'cbc'
          9        SEND_VAL_EX                                              ''
         10        DO_FCALL                                      0  $15     
         11        ASSIGN                                                   !4, $15
   12    12        INIT_FCALL_BY_NAME                                       'mcrypt_create_iv'
         13        INIT_FCALL_BY_NAME                                       'mcrypt_enc_get_iv_size'
         14        SEND_VAR_EX                                              !4
         15        DO_FCALL                                      0  $17     
         16        SEND_VAR_NO_REF_EX                                       $17
         17        FETCH_CONSTANT                                   ~18     'MCRYPT_RAND'
         18        SEND_VAL_EX                                              ~18
         19        DO_FCALL                                      0  $19     
         20        ASSIGN                                                   !5, $19
   13    21        INIT_FCALL_BY_NAME                                       'mcrypt_enc_get_key_size'
         22        SEND_VAR_EX                                              !4
         23        DO_FCALL                                      0  $21     
         24        ASSIGN                                                   !6, $21
   16    25        INIT_FCALL                                               'md5'
         26        SEND_VAR                                                 !0
         27        DO_ICALL                                         $23     
         28        ASSIGN                                                   !0, $23
   17    29        INIT_FCALL                                               'md5'
         30        SEND_VAR                                                 !1
         31        DO_ICALL                                         $25     
         32        ASSIGN                                                   !1, $25
   19    33        INIT_FCALL                                               'substr'
         34        SEND_VAR                                                 !0
         35        SEND_VAL                                                 0
         36        DIV                                              ~27     !6, 2
         37        SEND_VAL                                                 ~27
         38        DO_ICALL                                         $28     
         39        INIT_FCALL                                               'substr'
         40        INIT_FCALL                                               'strtoupper'
         41        SEND_VAR                                                 !1
         42        DO_ICALL                                         $29     
         43        SEND_VAR                                                 $29
         44        INIT_FCALL                                               'round'
         45        STRLEN                                           ~30     !1
         46        DIV                                              ~31     ~30, 2
         47        SEND_VAL                                                 ~31
         48        DO_ICALL                                         $32     
         49        SEND_VAR                                                 $32
         50        DIV                                              ~33     !6, 2
         51        SEND_VAL                                                 ~33
         52        DO_ICALL                                         $34     
         53        CONCAT                                           ~35     $28, $34
         54        ASSIGN                                                   !7, ~35
   21    55        INIT_FCALL                                               'substr'
         56        CONCAT                                           ~37     !7, !0
         57        CONCAT                                           ~38     ~37, !1
         58        INIT_FCALL                                               'strtoupper'
         59        SEND_VAR                                                 !0
         60        DO_ICALL                                         $39     
         61        CONCAT                                           ~40     ~38, $39
         62        SEND_VAL                                                 ~40
         63        SEND_VAL                                                 0
         64        SEND_VAR                                                 !6
         65        DO_ICALL                                         $41     
         66        ASSIGN                                                   !7, $41
   24    67        INIT_FCALL_BY_NAME                                       'mcrypt_generic_init'
         68        SEND_VAR_EX                                              !4
         69        SEND_VAR_EX                                              !7
         70        SEND_VAR_EX                                              !5
         71        DO_FCALL                                      0          
   27    72        INIT_FCALL_BY_NAME                                       'mcrypt_generic'
         73        SEND_VAR_EX                                              !4
         74        SEND_VAR_EX                                              !2
         75        DO_FCALL                                      0  $44     
         76        ASSIGN                                                   !8, $44
   30    77        INIT_FCALL_BY_NAME                                       'mcrypt_generic_deinit'
         78        SEND_VAR_EX                                              !4
         79        DO_FCALL                                      0          
   33    80        INIT_FCALL_BY_NAME                                       'mcrypt_generic_init'
         81        SEND_VAR_EX                                              !4
         82        SEND_VAR_EX                                              !7
         83        SEND_VAR_EX                                              !5
         84        DO_FCALL                                      0          
   36    85        INIT_FCALL_BY_NAME                                       'mdecrypt_generic'
         86        SEND_VAR_EX                                              !4
         87        SEND_VAR_EX                                              !8
         88        DO_FCALL                                      0  $48     
         89        ASSIGN                                                   !9, $48
   39    90        INIT_FCALL_BY_NAME                                       'mcrypt_generic_deinit'
         91        SEND_VAR_EX                                              !4
         92        DO_FCALL                                      0          
   40    93        INIT_FCALL_BY_NAME                                       'mcrypt_module_close'
         94        SEND_VAR_EX                                              !4
         95        DO_FCALL                                      0          
   43    96        INIT_FCALL                                               'substr'
         97        SEND_VAR                                                 !9
         98        SEND_VAL                                                 0
         99        SEND_VAR                                                 !3
        100        DO_ICALL                                         $52     
        101        CONCAT                                           ~53     'Text%3A+', $52
        102        CONCAT                                           ~54     ~53, '%3Cbr%3E'
        103        ECHO                                                     ~54
   44   104        CONCAT                                           ~55     'Encoded%3A+', !8
        105        CONCAT                                           ~56     ~55, '%3Cbr%3E'
        106        ECHO                                                     ~56
   45   107        ROPE_INIT                                     6  ~58     '%3Cbr%3Ekey1%3A+'
        108        ROPE_ADD                                      1  ~58     ~58, !0
        109        ROPE_ADD                                      2  ~58     ~58, '+%3Cbr%3Ekey2%3A+'
        110        ROPE_ADD                                      3  ~58     ~58, !1
        111        ROPE_ADD                                      4  ~58     ~58, '%3Cbr%3Ecreated+key%3A+'
        112        ROPE_END                                      5  ~57     ~58, !7
        113        ECHO                                                     ~57
        114      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
171.34 ms | 1404 KiB | 21 Q