3v4l.org

run code in 300+ PHP versions simultaneously
<?php class CryptoHelper { public $pubkey = ""; public $privkey = ""; function __construct() { $this->pubkey = ("-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHVvv1U1jae8a4mpkmda As8c0Yx0dpeqHiuJkErP01YFf5/6sw/YyzhbEANZMip4o3YukylmwvRQv2a29ZNo iL0HfJyzcYxfiEgGJ5EmYChMRdXZ0QPQi6Q8XtKxRc110bYJNDfpqDsh8vvz8tHD l4yFN0KA3iVvs6ZWEYoSkGu9qlJ319FKzW7JAIz0MFxu4fGEwEm5geDNBpwuqZhv IQUNXGYxFz2whYS13tEEPygLAeHH/AidYetrlYA0t4kG0R54sRBBRO7/EdPtEtE0 YTGzoeClIDkJd5FNj0UFvFL4gXOc+oES+rCwKWCAny1pbN+UC0lVlsWhTpTtfhio 7QIDAQAB -----END PUBLIC KEY-----"); $this->privkey = ( "-----BEGIN RSA PRIVATE KEY----- MIIEoQIBAAKCAQEAvHVvv1U1jae8a4mpkmdaAs8c0Yx0dpeqHiuJkErP01YFf5/6 sw/YyzhbEANZMip4o3YukylmwvRQv2a29ZNoiL0HfJyzcYxfiEgGJ5EmYChMRdXZ 0QPQi6Q8XtKxRc110bYJNDfpqDsh8vvz8tHDl4yFN0KA3iVvs6ZWEYoSkGu9qlJ3 19FKzW7JAIz0MFxu4fGEwEm5geDNBpwuqZhvIQUNXGYxFz2whYS13tEEPygLAeHH /AidYetrlYA0t4kG0R54sRBBRO7/EdPtEtE0YTGzoeClIDkJd5FNj0UFvFL4gXOc +oES+rCwKWCAny1pbN+UC0lVlsWhTpTtfhio7QIDAQABAoH/N/KlOigRvfwN897q eIw2LJ9P7uXDrXFZD5vdOvj6ucLP3xOfWYla0vnoDtjvofT52406RnYEC9x8HFZh +oXIgs+baWMb4pnJwqufKB/vRJyyCAl0oJiBUPNw+LWT6yUT1S41jUsMEuV7Lqed xHiBmHwfEEit+UUj5DF9W7ehyz2uHaU+u0KYffWpHZwY8vlCLcT5r3eEjy45AxMn jRl8m6LOVB6m0KvcyLXK9HHExD8nYGxalTn2Delb6x1/StH19by5l0QA4MwfLLSO +qWKHFWG3mwt80MsLjWfR5rr/A8WUMrQ2yMbW6n089Na7kRGYOhjWPtqji3Xv+hY XL+BAoGBAPBxWrir2ZBETgJJhEo89D5F+WV+BFwf7p4M8AH/kkrhiMuHlp3Jsn7o GRoDp3XwVm+kDfw0zAJHic7bYP4wwolKk8LXdQ7FtaB54UXJ/qzLaLoC62dnIdru SF5ScPahS0gA+poaIBPsOAbfESYcn3m6RZUT8T+6w4xgifVSFWnlAoGBAMinB1+W DjSiNHj83CgRe7N20ozidzTfl/hukKqOOIpJLWOiiOe7nR89LQjGJx5wc48pW3DP YzG8fokW1xN4O4hfI1nMKgmXeV6wG/kwjWoWNfxOSUnw3YFBQty/blPbGEowCWkd KzoFI2PYhDZHMkvXCfCh4vx4UZUrg+nKA7JpAoGBALSfctdnwXhu12tAbvCV+aUO S9vCXuQV2NtCPMpDg1JdOrYqlSrTahOLp8+zDwm6EjSruRXNU7QiqZOLmcFaP8mD DJ1B3d3LCDYVWPVkWLzV0UZrCwwSnYwplJPGurWLVVIx6g/5sD9HJI+E4w0OU37O P5dN8908H8pEe16e2xdBAoGAS/QuLli29+WOx12wWNqFYOHRwdLYHQOmmzv/NxCv Bmm87MJR4KZ8S570tSWNGVCn7cFSA9n9So53t50VvSD+KBkbYJqQLyFPqDAx5poi bc4KkX9w7rRmpM73aGhucv+0qiCU711DR6s6QklrgsBgoaS89oHRUpCZEUZvoMf/ rkECgYBHHCxrop30fWWYTRIxfzVQi5OsG/b/PiBj5f4Qa2huP+l91I/GIhrbXJ6l nHd+K9u8PE1+SWQWX8584C8KZkBn0lcJvH0VSJDoB2/FzgLpDp/sQBfyAhJobXxP xoEYe9RDrxR+kmYyIwcod0ZsXT5oJNQLe2I3ps1cHi2ZIvnjzA== -----END RSA PRIVATE KEY-----" ); } public function encrypt($data) { if( openssl_public_encrypt( $data, $encrypted, $this->pubkey ) ) { $data = base64_encode($encrypted); } else { echo "ERROR"; } return $data; } public function decrypt($data) { if( openssl_private_decrypt( base64_decode($data), $decrypted, $this->privkey, OPENSSL_PKCS1_PADDING ) ) { $data = $decrypted; } else { $data = ''; } return $data; } } $a = new CryptoHelper(); $data = ("ls2ly9xthLrmFX+E9Qzdt7GiBOfVB4hVaA9J99g9UgDbQDwSwfsHIKDRGnKc+7MZ 7aTVxod4HtVix3aSKtbgs5o60lQyMJ2AGXmcwSZU79K5eKcFg3Y+lTQ4l15NOTVw aggEM/XQHcxd+yXQ35fxPiZHdF44vMi1vYA+dkLQxebu/6mFt/49JniCFtKcwYKE OCrw7v7Le45X8cnNj3GoPJBvPRFqhu8lYc1KH0FF/h6rLNVY28wVk4UJRQBDZLn9 0cVRYRJHbnuDFfHLVGJN0/CFIbBWGZvkqnW1o7Yk+f10wuuHt9Bn/tzt5f5JDZVx z/gPGhMrHw5PpA5979AIkQ=="); echo "CRYPTED DATA : $data\n\n"; echo "Decrypt : ".$a->decrypt($data)."\n"; ?>
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/fcl9n
function name:  (null)
number of ops:  15
compiled vars:  !0 = $a, !1 = $data
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   78     0  E >   NEW                                              $2      'CryptoHelper'
          1        DO_FCALL                                      0          
          2        ASSIGN                                                   !0, $2
   80     3        ASSIGN                                                   !1, 'ls2ly9xthLrmFX%2BE9Qzdt7GiBOfVB4hVaA9J99g9UgDbQDwSwfsHIKDRGnKc%2B7MZ%0A7aTVxod4HtVix3aSKtbgs5o60lQyMJ2AGXmcwSZU79K5eKcFg3Y%2BlTQ4l15NOTVw%0AaggEM%2FXQHcxd%2ByXQ35fxPiZHdF44vMi1vYA%2BdkLQxebu%2F6mFt%2F49JniCFtKcwYKE%0AOCrw7v7Le45X8cnNj3GoPJBvPRFqhu8lYc1KH0FF%2Fh6rLNVY28wVk4UJRQBDZLn9%0A0cVRYRJHbnuDFfHLVGJN0%2FCFIbBWGZvkqnW1o7Yk%2Bf10wuuHt9Bn%2Ftzt5f5JDZVx%0Az%2FgPGhMrHw5PpA5979AIkQ%3D%3D'
   87     4        ROPE_INIT                                     3  ~7      'CRYPTED+DATA+%3A+'
          5        ROPE_ADD                                      1  ~7      ~7, !1
          6        ROPE_END                                      2  ~6      ~7, '%0A%0A'
          7        ECHO                                                     ~6
   88     8        INIT_METHOD_CALL                                         !0, 'decrypt'
          9        SEND_VAR_EX                                              !1
         10        DO_FCALL                                      0  $9      
         11        CONCAT                                           ~10     'Decrypt+%3A+', $9
         12        CONCAT                                           ~11     ~10, '%0A'
         13        ECHO                                                     ~11
   89    14      > RETURN                                                   1

Class CryptoHelper:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/fcl9n
function name:  __construct
number of ops:  5
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   11     0  E >   ASSIGN_OBJ                                               'pubkey'
          1        OP_DATA                                                  '-----BEGIN+PUBLIC+KEY-----%0AMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHVvv1U1jae8a4mpkmda%0AAs8c0Yx0dpeqHiuJkErP01YFf5%2F6sw%2FYyzhbEANZMip4o3YukylmwvRQv2a29ZNo%0AiL0HfJyzcYxfiEgGJ5EmYChMRdXZ0QPQi6Q8XtKxRc110bYJNDfpqDsh8vvz8tHD%0Al4yFN0KA3iVvs6ZWEYoSkGu9qlJ319FKzW7JAIz0MFxu4fGEwEm5geDNBpwuqZhv%0AIQUNXGYxFz2whYS13tEEPygLAeHH%2FAidYetrlYA0t4kG0R54sRBBRO7%2FEdPtEtE0%0AYTGzoeClIDkJd5FNj0UFvFL4gXOc%2BoES%2BrCwKWCAny1pbN%2BUC0lVlsWhTpTtfhio%0A7QIDAQAB%0A-----END+PUBLIC+KEY-----'
   20     2        ASSIGN_OBJ                                               'privkey'
          3        OP_DATA                                                  '-----BEGIN+RSA+PRIVATE+KEY-----%0AMIIEoQIBAAKCAQEAvHVvv1U1jae8a4mpkmdaAs8c0Yx0dpeqHiuJkErP01YFf5%2F6%0Asw%2FYyzhbEANZMip4o3YukylmwvRQv2a29ZNoiL0HfJyzcYxfiEgGJ5EmYChMRdXZ%0A0QPQi6Q8XtKxRc110bYJNDfpqDsh8vvz8tHDl4yFN0KA3iVvs6ZWEYoSkGu9qlJ3%0A19FKzW7JAIz0MFxu4fGEwEm5geDNBpwuqZhvIQUNXGYxFz2whYS13tEEPygLAeHH%0A%2FAidYetrlYA0t4kG0R54sRBBRO7%2FEdPtEtE0YTGzoeClIDkJd5FNj0UFvFL4gXOc%0A%2BoES%2BrCwKWCAny1pbN%2BUC0lVlsWhTpTtfhio7QIDAQABAoH%2FN%2FKlOigRvfwN897q%0AeIw2LJ9P7uXDrXFZD5vdOvj6ucLP3xOfWYla0vnoDtjvofT52406RnYEC9x8HFZh%0A%2BoXIgs%2BbaWMb4pnJwqufKB%2FvRJyyCAl0oJiBUPNw%2BLWT6yUT1S41jUsMEuV7Lqed%0AxHiBmHwfEEit%2BUUj5DF9W7ehyz2uHaU%2Bu0KYffWpHZwY8vlCLcT5r3eEjy45AxMn%0AjRl8m6LOVB6m0KvcyLXK9HHExD8nYGxalTn2Delb6x1%2FStH19by5l0QA4MwfLLSO%0A%2BqWKHFWG3mwt80MsLjWfR5rr%2FA8WUMrQ2yMbW6n089Na7kRGYOhjWPtqji3Xv%2BhY%0AXL%2BBAoGBAPBxWrir2ZBETgJJhEo89D5F%2BWV%2BBFwf7p4M8AH%2FkkrhiMuHlp3Jsn7o%0AGRoDp3XwVm%2BkDfw0zAJHic7bYP4wwolKk8LXdQ7FtaB54UXJ%2FqzLaLoC62dnIdru%0ASF5ScPahS0gA%2BpoaIBPsOAbfESYcn3m6RZUT8T%2B6w4xgifVSFWnlAoGBAMinB1%2BW%0ADjSiNHj83CgRe7N20ozidzTfl%2FhukKqOOIpJLWOiiOe7nR89LQjGJx5wc48pW3DP%0AYzG8fokW1xN4O4hfI1nMKgmXeV6wG%2FkwjWoWNfxOSUnw3YFBQty%2FblPbGEowCWkd%0AKzoFI2PYhDZHMkvXCfCh4vx4UZUrg%2BnKA7JpAoGBALSfctdnwXhu12tAbvCV%2BaUO%0AS9vCXuQV2NtCPMpDg1JdOrYqlSrTahOLp8%2BzDwm6EjSruRXNU7QiqZOLmcFaP8mD%0ADJ1B3d3LCDYVWPVkWLzV0UZrCwwSnYwplJPGurWLVVIx6g%2F5sD9HJI%2BE4w0OU37O%0AP5dN8908H8pEe16e2xdBAoGAS%2FQuLli29%2BWOx12wWNqFYOHRwdLYHQOmmzv%2FNxCv%0ABmm87MJR4KZ8S570tSWNGVCn7cFSA9n9So53t50VvSD%2BKBkbYJqQLyFPqDAx5poi%0Abc4KkX9w7rRmpM73aGhucv%2B0qiCU711DR6s6QklrgsBgoaS89oHRUpCZEUZvoMf%2F%0ArkECgYBHHCxrop30fWWYTRIxfzVQi5OsG%2Fb%2FPiBj5f4Qa2huP%2Bl91I%2FGIhrbXJ6l%0AnHd%2BK9u8PE1%2BSWQWX8584C8KZkBn0lcJvH0VSJDoB2%2FFzgLpDp%2FsQBfyAhJobXxP%0AxoEYe9RDrxR%2BkmYyIwcod0ZsXT5oJNQLe2I3ps1cHi2ZIvnjzA%3D%3D%0A-----END+RSA+PRIVATE+KEY-----'
   47     4      > RETURN                                                   null

End of function __construct

Function encrypt:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 9, Position 2 = 14
Branch analysis from position: 9
1 jumps found. (Code = 42) Position 1 = 15
Branch analysis from position: 15
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 14
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/fcl9n
function name:  encrypt
number of ops:  17
compiled vars:  !0 = $data, !1 = $encrypted
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   49     0  E >   RECV                                             !0      
   51     1        INIT_FCALL_BY_NAME                                       'openssl_public_encrypt'
          2        SEND_VAR_EX                                              !0
          3        SEND_VAR_EX                                              !1
          4        CHECK_FUNC_ARG                                           
          5        FETCH_OBJ_FUNC_ARG                               $2      'pubkey'
          6        SEND_FUNC_ARG                                            $2
          7        DO_FCALL                                      0  $3      
          8      > JMPZ                                                     $3, ->14
   53     9    >   INIT_FCALL                                               'base64_encode'
         10        SEND_VAR                                                 !1
         11        DO_ICALL                                         $4      
         12        ASSIGN                                                   !0, $4
         13      > JMP                                                      ->15
   57    14    >   ECHO                                                     'ERROR'
   60    15    > > RETURN                                                   !0
   61    16*     > RETURN                                                   null

End of function encrypt

Function decrypt:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 14, Position 2 = 16
Branch analysis from position: 14
1 jumps found. (Code = 42) Position 1 = 17
Branch analysis from position: 17
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 16
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/fcl9n
function name:  decrypt
number of ops:  19
compiled vars:  !0 = $data, !1 = $decrypted
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   63     0  E >   RECV                                             !0      
   65     1        INIT_FCALL_BY_NAME                                       'openssl_private_decrypt'
          2        INIT_FCALL                                               'base64_decode'
          3        SEND_VAR                                                 !0
          4        DO_ICALL                                         $2      
          5        SEND_VAR_NO_REF_EX                                       $2
          6        SEND_VAR_EX                                              !1
          7        CHECK_FUNC_ARG                                           
          8        FETCH_OBJ_FUNC_ARG                               $3      'privkey'
          9        SEND_FUNC_ARG                                            $3
         10        FETCH_CONSTANT                                   ~4      'OPENSSL_PKCS1_PADDING'
         11        SEND_VAL_EX                                              ~4
         12        DO_FCALL                                      0  $5      
         13      > JMPZ                                                     $5, ->16
   67    14    >   ASSIGN                                                   !0, !1
         15      > JMP                                                      ->17
   71    16    >   ASSIGN                                                   !0, ''
   74    17    > > RETURN                                                   !0
   75    18*     > RETURN                                                   null

End of function decrypt

End of class CryptoHelper.

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
171.02 ms | 1404 KiB | 17 Q