where('id', '=', '1')->first()->version; } else { return 0; } } else { return 0; } } catch (Exception $ex) { return 0; } } public static function isDatabaseSetup() { try { if (Schema::hasTable('settings_system')) { return true; } } catch (Exception $e) { return false; } } public static function encryptByFaveoPublicKey($plaintext) { try { // Compress the data to be sent $plaintext = gzcompress($plaintext); // Get the public Key of the recipient $path = storage_path('app'.DIRECTORY_SEPARATOR.'faveo-public.key'); $key_content = file_get_contents($path); //dd($path); $publicKey = openssl_pkey_get_public($key_content); //dd($publicKey); $a_key = openssl_pkey_get_details($publicKey); // Encrypt the data in small chunks and then combine and send it. $chunkSize = ceil($a_key['bits'] / 8) - 11; $output = ''; while ($plaintext) { $chunk = substr($plaintext, 0, $chunkSize); $plaintext = substr($plaintext, $chunkSize); $encrypted = ''; if (!openssl_public_encrypt($chunk, $encrypted, $publicKey)) { throw new Exception('Failed to encrypt data'); } $output .= $encrypted; } openssl_free_key($publicKey); // This is the final encrypted data to be sent to the recipient $encrypted = $output; return $encrypted; } catch (Exception $ex) { dd($ex); } } public static function decryptByFaveoPrivateKey($encrypted) { try { //$encrypted = p¥Ùn¿olÓ¥9)OÞݸÔvh§=Ìtt1rkC‰É§%YœfÐS\BâkHW€mùÌØg¹+VŠ¥²?áÙ{/<¶¡£e¡ˆr°(V)Öíàr„Ž]K9¤ÿÖ¡Åmž”üÈoò״µºŽ06¼e €rœ['4çhH¾ö:¨œ–S„œ¦,|¤ÇqÂrÈŸd+ml‡ uötφûóŽ&›áyÙ(ÆŒÁ$‘¥±Zj*îàÒöL‘ˆD†aɐö_§è¶°·V„Þú]%ÅR*B=žéršæñ*i+፭±èç|c¹Ñߟ­F$; // Get the private Key $path = storage_path('app'.DIRECTORY_SEPARATOR.'faveo-private.key'); $key_content = file_get_contents($path); if (!$privateKey = openssl_pkey_get_private($key_content)) { die('Private Key failed'); } $a_key = openssl_pkey_get_details($privateKey); // Decrypt the data in the small chunks $chunkSize = ceil($a_key['bits'] / 8); $output = ''; while ($encrypted) { $chunk = substr($encrypted, 0, $chunkSize); $encrypted = substr($encrypted, $chunkSize); $decrypted = ''; if (!openssl_private_decrypt($chunk, $decrypted, $privateKey)) { die('Failed to decrypt data'); } $output .= $decrypted; } openssl_free_key($privateKey); // Uncompress the unencrypted data. $output = gzuncompress($output); echo '

Unencrypted Data: '.$output; } catch (Exception $ex) { dd($ex); } } }