crypt
v4A classe MUCRM\engine\support\crypt criptografa dados sensíveis que precisam ser lidos depois (tokens, chaves de API). Classe e métodos em lowercase: crypt::encrypt(). Para senhas, use hash.
⚠️Chave interna da Engine
A criptografia usa chave interna da Engine (AES-256-CBC). Se ela mudar, payloads antigos não abrem.
Importação
use MUCRM\engine\support\crypt;Criptografar e descriptografar
encrypt() serializa arrays e objetos automaticamente. Para strings puras, prefira encrypt_string().
$encrypted = crypt::encrypt('meu-segredo');
$plain = crypt::decrypt($encrypted);
// "meu-segredo"String pura
$encrypted = crypt::encrypt_string('token-api-abc123');
$plain = crypt::decrypt_string($encrypted);
// "token-api-abc123"Arrays / estruturas
$payload = crypt::encrypt([
'customer_id' => 42,
'role' => 'admin',
]);
$data = crypt::decrypt($payload);| Método | Descrição |
|---|---|
| crypt::encrypt($value) | Serializa e criptografa qualquer valor |
| crypt::decrypt($payload) | Descriptografa e desserializa |
| crypt::encrypt_string($text) | Criptografa string sem serialize |
| crypt::decrypt_string($payload) | Descriptografa string pura |
| crypt::make($value) | HMAC one-way (não recupera o original) |
| crypt::check($value, $hmac) | Compara valor com HMAC gerado por make() |
Exemplo em handler
<?php
namespace MUCRM\modules\account\handlers;
use MUCRM\engine\support\{crypt, request};
use MUCRM\http\handler;
class settings_handler extends handler
{
public function store_api_key(request $req)
{
$data = $req->check([
'api_key' => 'required|min:16',
]);
$customer = auth();
$customer->api_key_encrypted = crypt::encrypt($data['api_key']);
$customer->save();
return res()->success('Chave salva com segurança.')->back();
}
public function reveal_api_key()
{
$customer = auth();
try {
$key = crypt::decrypt($customer->api_key_encrypted);
} catch (\Throwable $e) {
return res()->error('Não foi possível ler a chave.')->back();
}
return $this->view('Account.settings.api_key', compact('key'));
}
}crypt vs hash
// hash — senhas (não recupera o original)
hash::make('senha123');
hash::check('senha123', $customer->password);
// crypt — dados que você PRECISA ler de novo
crypt::encrypt($token);
crypt::decrypt($token_criptografado);
// crypt::make / crypt::check — HMAC one-way (não é senha)
$hmac = crypt::make('valor-secreto');
crypt::check('valor-secreto', $hmac);🚨Não use crypt para senhas
Senha de usuário →
hash::make() / hash::check(). O crypt::make() é HMAC one-way, não substitui hash de senha.Resumo
use MUCRM\engine\support\crypt;
crypt::encrypt($value); // serializa arrays/objetos
crypt::decrypt($payload);
crypt::encrypt_string($text); // string pura
crypt::decrypt_string($payload);
crypt::make($value); // HMAC one-way
crypt::check($value, $hmac);