. */ namespace SP\Core\Crypt; use Defuse\Crypto\Crypto; use Defuse\Crypto\Exception\WrongKeyOrModifiedCiphertextException; use Defuse\Crypto\Key; use Defuse\Crypto\KeyProtectedByPassword; /** * Class Crypt * * @package SP\Core\Crypt */ class Crypt { /** * Encriptar datos con una clave segura * * @param $data * @param $securedKey * @return string * @throws \Defuse\Crypto\Exception\EnvironmentIsBrokenException * @throws \Defuse\Crypto\Exception\BadFormatException */ public static function encrypt($data, $securedKey) { $key = Key::loadFromAsciiSafeString($securedKey); return Crypto::encrypt($data, $key); } /** * Desencriptar datos con una clave segura * * @param $data * @param $securedKey * @return string * @throws \Defuse\Crypto\Exception\BadFormatException * @throws \Defuse\Crypto\Exception\EnvironmentIsBrokenException */ public static function decrypt($data, $securedKey) { $key = Key::loadFromAsciiSafeString($securedKey); try { return Crypto::decrypt($data, $key); } catch (WrongKeyOrModifiedCiphertextException $e) { return false; } } /** * Securiza una clave de seguridad * * @param $password * @return string * @throws \Defuse\Crypto\Exception\EnvironmentIsBrokenException */ public static function makeSecuredKey($password) { return KeyProtectedByPassword::createRandomPasswordProtectedKey($password)->saveToAsciiSafeString(); } /** * @param $key * @param $password * @return string * @throws \Defuse\Crypto\Exception\EnvironmentIsBrokenException * @throws \Defuse\Crypto\Exception\BadFormatException */ public static function unlockSecuredKey($key, $password) { try { return KeyProtectedByPassword::loadFromAsciiSafeString($key)->unlockKey($password)->saveToAsciiSafeString(); } catch (WrongKeyOrModifiedCiphertextException $e) { return false; } } }