Criptografia (Crypt)
Use Crypt quando precisar guardar um dado sensível e depois ler de novo(token de integração, segredo de API). Senha de login? Use Hash — não dá para “descriptografar”.
⚠️Chave da aplicação
A criptografia depende da chave da app. Se ela mudar, payloads antigos não abrem. Em produção, trate a chave como segredo.
Import
use MUCRM\Engine\Support\Crypt;
// ou facade:
use MUCRM\Engine\Support\Facades\Crypt;Criptografar e descriptografar
// Onde: Controller, Model, Service, Job
$encrypted = Crypt::encrypt('meu-segredo');
$plain = Crypt::decrypt($encrypted);
// "meu-segredo"Arrays / estruturas
$payload = Crypt::encrypt([
'user_id' => 42,
'role' => 'admin',
]);
$data = Crypt::decrypt($payload);| Método | Para que serve |
|---|---|
Crypt::encrypt($value) | String segura para guardar |
Crypt::decrypt($payload) | Recupera o valor original |
Exemplo prático
<?php
namespace App\Http\Controllers;
use MUCRM\Engine\Http\Controllers\Controller;
use MUCRM\Engine\Support\Crypt;
use MUCRM\Engine\Support\Request;
class ApiKeyController extends Controller
{
public function store(Request $req)
{
$data = $req->check([
'api_key' => 'required|min:16',
]);
$user = auth()->user();
$user->api_key_encrypted = Crypt::encrypt($data['api_key']);
$user->save();
return res()->success('Chave salva com segurança.')->to('user.settings');
}
public function reveal()
{
$user = auth()->user();
try {
$key = Crypt::decrypt($user->api_key_encrypted);
} catch (\Throwable $e) {
return res()->error('Não foi possível ler a chave.')->back();
}
return $this->view('user.api-key', ['apiKey' => $key]);
}
}Crypt vs Hash
// Hash — senhas (não recupera o original)
Hash::make('senha123');
Hash::check('senha123', $user->password);
// Crypt — dados que você PRECISA ler de novo
Crypt::encrypt($token);
Crypt::decrypt($tokenCriptografado);Senhas: Hash
🚨Não use Crypt para senhas
Senha de usuário → Hash::make / Hash::check.
