3v4l.org

run code in 300+ PHP versions simultaneously
<?php const OPENSSL_CIPHER_NAME = "aes-128-cbc"; const CIPHER_KEY_LEN = 16; //128 bits function fixKey($key) { if (strlen($key) < CIPHER_KEY_LEN) return str_pad("$key", CIPHER_KEY_LEN, "0"); if (strlen($key) > CIPHER_KEY_LEN) return substr($key, 0, CIPHER_KEY_LEN); return $key; } function encrypt($key, $data) { $encodedEncryptedData = base64_encode(openssl_encrypt(sprintf("%s",$data), OPENSSL_CIPHER_NAME, fixKey($key), OPENSSL_RAW_DATA, 't5x9e2k3b8aa57kp')); return $encodedEncryptedData; } function decrypt($key, $data) { $data = str_replace('%2B','+', $data); $data = str_replace('%3D','=', $data); $decryptedData = openssl_decrypt(base64_decode($data), OPENSSL_CIPHER_NAME, fixKey($key), OPENSSL_RAW_DATA, 't5x9e2k3b8aa57kp'); return sprintf("%s",$decryptedData); } //var_dump(decrypt("1111111111111111", "TCfOO5NRcq1jK9TmIgp/GQ%3D%3D")); echo encrypt("1111111111111111", "0"); /*echo encrypt("1111111111111111", "Спали мы в бывшем спортзале. Лакированные половицы, на них круги и полосы – для игр, в которые здесь играли когда-то; баскетбольные кольца до сих пор на месте, только сеток нет. По периметру – балкон для зрителей, и, кажется, я улавливала – смутно, послесвечением, – едкую вонь пота со сладким душком жевательной резинки и парфюма девочек-зрительниц в юбках-колоколах – я видела на фотографиях, – позже в мини-юбках, потом в брюках, потом с одной сережкой и зелеными прядками в колючих прическах. Здесь танцевали; музыка сохранилась – палимпсест неслыханных звуков, стиль на стиле, подводное течение ударных, горестный вопль, гирлянды бумажных цветов, картонные чертики, круговерть зеркальных шаров, что засыпали танцоров снегопадом света.");*/ ?>
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/RbrdQ
function name:  (null)
number of ops:  8
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   DECLARE_CONST                                            'OPENSSL_CIPHER_NAME', 'aes-128-cbc'
    4     1        DECLARE_CONST                                            'CIPHER_KEY_LEN', 16
   27     2        INIT_FCALL                                               'encrypt'
          3        SEND_VAL                                                 '1111111111111111'
          4        SEND_VAL                                                 '0'
          5        DO_FCALL                                      0  $0      
          6        ECHO                                                     $0
   30     7      > RETURN                                                   1

Function fixkey:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 13
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 13
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 24
Branch analysis from position: 17
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 24
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/RbrdQ
function name:  fixKey
number of ops:  26
compiled vars:  !0 = $key
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    6     0  E >   RECV                                             !0      
    7     1        STRLEN                                           ~1      !0
          2        FETCH_CONSTANT                                   ~2      'CIPHER_KEY_LEN'
          3        IS_SMALLER                                               ~1, ~2
          4      > JMPZ                                                     ~3, ->13
    8     5    >   INIT_FCALL                                               'str_pad'
          6        CAST                                          6  ~4      !0
          7        SEND_VAL                                                 ~4
          8        FETCH_CONSTANT                                   ~5      'CIPHER_KEY_LEN'
          9        SEND_VAL                                                 ~5
         10        SEND_VAL                                                 '0'
         11        DO_ICALL                                         $6      
         12      > RETURN                                                   $6
   10    13    >   STRLEN                                           ~7      !0
         14        FETCH_CONSTANT                                   ~8      'CIPHER_KEY_LEN'
         15        IS_SMALLER                                               ~8, ~7
         16      > JMPZ                                                     ~9, ->24
   11    17    >   INIT_FCALL                                               'substr'
         18        SEND_VAR                                                 !0
         19        SEND_VAL                                                 0
         20        FETCH_CONSTANT                                   ~10     'CIPHER_KEY_LEN'
         21        SEND_VAL                                                 ~10
         22        DO_ICALL                                         $11     
         23      > RETURN                                                   $11
   12    24    > > RETURN                                                   !0
   13    25*     > RETURN                                                   null

End of function fixkey

Function encrypt:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/RbrdQ
function name:  encrypt
number of ops:  24
compiled vars:  !0 = $key, !1 = $data, !2 = $encodedEncryptedData
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   15     0  E >   RECV                                             !0      
          1        RECV                                             !1      
   16     2        INIT_FCALL                                               'base64_encode'
          3        INIT_FCALL_BY_NAME                                       'openssl_encrypt'
          4        INIT_FCALL                                               'sprintf'
          5        SEND_VAL                                                 '%25s'
          6        SEND_VAR                                                 !1
          7        DO_ICALL                                         $3      
          8        SEND_VAR_NO_REF_EX                                       $3
          9        FETCH_CONSTANT                                   ~4      'OPENSSL_CIPHER_NAME'
         10        SEND_VAL_EX                                              ~4
         11        INIT_FCALL                                               'fixkey'
         12        SEND_VAR                                                 !0
         13        DO_FCALL                                      0  $5      
         14        SEND_VAR_NO_REF_EX                                       $5
         15        FETCH_CONSTANT                                   ~6      'OPENSSL_RAW_DATA'
         16        SEND_VAL_EX                                              ~6
         17        SEND_VAL_EX                                              't5x9e2k3b8aa57kp'
         18        DO_FCALL                                      0  $7      
         19        SEND_VAR                                                 $7
         20        DO_ICALL                                         $8      
         21        ASSIGN                                                   !2, $8
   17    22      > RETURN                                                   !2
   18    23*     > RETURN                                                   null

End of function encrypt

Function decrypt:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/RbrdQ
function name:  decrypt
number of ops:  36
compiled vars:  !0 = $key, !1 = $data, !2 = $decryptedData
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   20     0  E >   RECV                                             !0      
          1        RECV                                             !1      
   21     2        INIT_FCALL                                               'str_replace'
          3        SEND_VAL                                                 '%252B'
          4        SEND_VAL                                                 '%2B'
          5        SEND_VAR                                                 !1
          6        DO_ICALL                                         $3      
          7        ASSIGN                                                   !1, $3
   22     8        INIT_FCALL                                               'str_replace'
          9        SEND_VAL                                                 '%253D'
         10        SEND_VAL                                                 '%3D'
         11        SEND_VAR                                                 !1
         12        DO_ICALL                                         $5      
         13        ASSIGN                                                   !1, $5
   23    14        INIT_FCALL_BY_NAME                                       'openssl_decrypt'
         15        INIT_FCALL                                               'base64_decode'
         16        SEND_VAR                                                 !1
         17        DO_ICALL                                         $7      
         18        SEND_VAR_NO_REF_EX                                       $7
         19        FETCH_CONSTANT                                   ~8      'OPENSSL_CIPHER_NAME'
         20        SEND_VAL_EX                                              ~8
         21        INIT_FCALL                                               'fixkey'
         22        SEND_VAR                                                 !0
         23        DO_FCALL                                      0  $9      
         24        SEND_VAR_NO_REF_EX                                       $9
         25        FETCH_CONSTANT                                   ~10     'OPENSSL_RAW_DATA'
         26        SEND_VAL_EX                                              ~10
         27        SEND_VAL_EX                                              't5x9e2k3b8aa57kp'
         28        DO_FCALL                                      0  $11     
         29        ASSIGN                                                   !2, $11
   24    30        INIT_FCALL                                               'sprintf'
         31        SEND_VAL                                                 '%25s'
         32        SEND_VAR                                                 !2
         33        DO_ICALL                                         $13     
         34      > RETURN                                                   $13
   25    35*     > RETURN                                                   null

End of function decrypt

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
179.67 ms | 1407 KiB | 28 Q