3v4l.org

run code in 300+ PHP versions simultaneously
<?php $encAlgo = 'rijndael-256'; $encMode = 'ecb'; function encrypt_base64_urlenc($secret, $shared) { global $encAlgo; global $encMode; $secret .= '\0'; return rawurlencode( base64_encode( trim(mcrypt_encrypt( $encAlgo, $shared, $secret, $encMode, mcrypt_create_iv( mcrypt_get_iv_size( $encAlgo, $encMode ), 2 ) ), "\0") ) ); } function decrypt_base64($secret, $shared) { global $encAlgo; global $encMode; $result = trim(mcrypt_decrypt( $encAlgo, $shared, base64_decode(strtr($secret,' ','+')), $encMode, mcrypt_create_iv( mcrypt_get_iv_size( $encAlgo, $encMode ), 2 ) ), "\0"); $terminator = strpos($result, '\0'); if ( $terminator !== -1 ) return substr($result, 0, $terminator); return $result; } $test = encrypt_base64_urlenc('thisisatest','derpderp'); echo "$test\n"; $decd = decrypt_base64(rawurldecode($test),'derpderp'); echo "$decd\n"; $v = 'UQZv+VpZTlLkjPSaNnkrnDUMXH1pHKb/Jd7Aq+g9exo='; $k = base64_decode('WOZ5NTIR9HrGM6bdehY0LMG8rmnnvplUprgSJE4cl1Y='); echo decrypt_base64($v, $k);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/WR7UG
function name:  (null)
number of ops:  32
compiled vars:  !0 = $encAlgo, !1 = $encMode, !2 = $test, !3 = $decd, !4 = $v, !5 = $k
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, 'rijndael-256'
    4     1        ASSIGN                                                   !1, 'ecb'
   52     2        INIT_FCALL                                               'encrypt_base64_urlenc'
          3        SEND_VAL                                                 'thisisatest'
          4        SEND_VAL                                                 'derpderp'
          5        DO_FCALL                                      0  $8      
          6        ASSIGN                                                   !2, $8
   53     7        NOP                                                      
          8        FAST_CONCAT                                      ~10     !2, '%0A'
          9        ECHO                                                     ~10
   55    10        INIT_FCALL                                               'decrypt_base64'
         11        INIT_FCALL                                               'rawurldecode'
         12        SEND_VAR                                                 !2
         13        DO_ICALL                                         $11     
         14        SEND_VAR                                                 $11
         15        SEND_VAL                                                 'derpderp'
         16        DO_FCALL                                      0  $12     
         17        ASSIGN                                                   !3, $12
   56    18        NOP                                                      
         19        FAST_CONCAT                                      ~14     !3, '%0A'
         20        ECHO                                                     ~14
   58    21        ASSIGN                                                   !4, 'UQZv%2BVpZTlLkjPSaNnkrnDUMXH1pHKb%2FJd7Aq%2Bg9exo%3D'
   59    22        INIT_FCALL                                               'base64_decode'
         23        SEND_VAL                                                 'WOZ5NTIR9HrGM6bdehY0LMG8rmnnvplUprgSJE4cl1Y%3D'
         24        DO_ICALL                                         $16     
         25        ASSIGN                                                   !5, $16
   60    26        INIT_FCALL                                               'decrypt_base64'
         27        SEND_VAR                                                 !4
         28        SEND_VAR                                                 !5
         29        DO_FCALL                                      0  $18     
         30        ECHO                                                     $18
         31      > RETURN                                                   1

Function encrypt_base64_urlenc:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/WR7UG
function name:  encrypt_base64_urlenc
number of ops:  32
compiled vars:  !0 = $secret, !1 = $shared, !2 = $encAlgo, !3 = $encMode
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    6     0  E >   RECV                                             !0      
          1        RECV                                             !1      
    7     2        BIND_GLOBAL                                              !2, 'encAlgo'
    8     3        BIND_GLOBAL                                              !3, 'encMode'
    9     4        ASSIGN_OP                                     8          !0, '%5C0'
   10     5        INIT_FCALL                                               'rawurlencode'
   11     6        INIT_FCALL                                               'base64_encode'
   12     7        INIT_FCALL                                               'trim'
          8        INIT_FCALL_BY_NAME                                       'mcrypt_encrypt'
   13     9        SEND_VAR_EX                                              !2
         10        SEND_VAR_EX                                              !1
         11        SEND_VAR_EX                                              !0
         12        SEND_VAR_EX                                              !3
   17    13        INIT_FCALL_BY_NAME                                       'mcrypt_create_iv'
   18    14        INIT_FCALL_BY_NAME                                       'mcrypt_get_iv_size'
   19    15        SEND_VAR_EX                                              !2
         16        SEND_VAR_EX                                              !3
         17        DO_FCALL                                      0  $5      
         18        SEND_VAR_NO_REF_EX                                       $5
   22    19        SEND_VAL_EX                                              2
         20        DO_FCALL                                      0  $6      
         21        SEND_VAR_NO_REF_EX                                       $6
         22        DO_FCALL                                      0  $7      
         23        SEND_VAR                                                 $7
   24    24        SEND_VAL                                                 '%00'
         25        DO_ICALL                                         $8      
         26        SEND_VAR                                                 $8
         27        DO_ICALL                                         $9      
         28        SEND_VAR                                                 $9
         29        DO_ICALL                                         $10     
         30      > RETURN                                                   $10
   27    31*     > RETURN                                                   null

End of function encrypt_base64_urlenc

Function decrypt_base64:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 39, Position 2 = 45
Branch analysis from position: 39
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 45
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/WR7UG
function name:  decrypt_base64
number of ops:  47
compiled vars:  !0 = $secret, !1 = $shared, !2 = $encAlgo, !3 = $encMode, !4 = $result, !5 = $terminator
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   29     0  E >   RECV                                             !0      
          1        RECV                                             !1      
   30     2        BIND_GLOBAL                                              !2, 'encAlgo'
   31     3        BIND_GLOBAL                                              !3, 'encMode'
   33     4        INIT_FCALL                                               'trim'
          5        INIT_FCALL_BY_NAME                                       'mcrypt_decrypt'
   34     6        SEND_VAR_EX                                              !2
          7        SEND_VAR_EX                                              !1
   36     8        INIT_FCALL                                               'base64_decode'
          9        INIT_FCALL                                               'strtr'
         10        SEND_VAR                                                 !0
         11        SEND_VAL                                                 '+'
         12        SEND_VAL                                                 '%2B'
         13        DO_ICALL                                         $6      
         14        SEND_VAR                                                 $6
         15        DO_ICALL                                         $7      
         16        SEND_VAR_NO_REF_EX                                       $7
   34    17        SEND_VAR_EX                                              !3
   38    18        INIT_FCALL_BY_NAME                                       'mcrypt_create_iv'
   39    19        INIT_FCALL_BY_NAME                                       'mcrypt_get_iv_size'
   40    20        SEND_VAR_EX                                              !2
         21        SEND_VAR_EX                                              !3
         22        DO_FCALL                                      0  $8      
         23        SEND_VAR_NO_REF_EX                                       $8
   43    24        SEND_VAL_EX                                              2
         25        DO_FCALL                                      0  $9      
         26        SEND_VAR_NO_REF_EX                                       $9
         27        DO_FCALL                                      0  $10     
         28        SEND_VAR                                                 $10
   45    29        SEND_VAL                                                 '%00'
         30        DO_ICALL                                         $11     
   32    31        ASSIGN                                                   !4, $11
   46    32        INIT_FCALL                                               'strpos'
         33        SEND_VAR                                                 !4
         34        SEND_VAL                                                 '%5C0'
         35        DO_ICALL                                         $13     
         36        ASSIGN                                                   !5, $13
   47    37        IS_NOT_IDENTICAL                                         !5, -1
         38      > JMPZ                                                     ~15, ->45
   48    39    >   INIT_FCALL                                               'substr'
         40        SEND_VAR                                                 !4
         41        SEND_VAL                                                 0
         42        SEND_VAR                                                 !5
         43        DO_ICALL                                         $16     
         44      > RETURN                                                   $16
   49    45    > > RETURN                                                   !4
   50    46*     > RETURN                                                   null

End of function decrypt_base64

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
151.92 ms | 1407 KiB | 32 Q