Site

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étodoPara 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.