---
title: "Fasáda Crypto — Crypto for Laravel | Roundly"
description: "Jeden vstupný bod do celej sady — ploché metódy a vnorené prístupy keys(), random(), x509() a ecDer(), s kompletnou tabuľkou metód."
url: https://roundly-consulting.com/sk/open-source/navody/crypto-for-laravel/fasada
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Crypto for Laravel](https://roundly-consulting.com/sk/open-source/navody/crypto-for-laravel.md)

# Fasáda Crypto

Crypto sprístupňuje RoundlyConsulting\\Crypto\\CryptoManager, takže po napísaní Crypto:: uvidíte každý vstupný bod — kľúče, signery, JOSE, JWK, X.509, ASN.1, hašovanie, autentifikované šifrovanie, COSE, OTP, CSPRNG a kódeky. Je to odporúčaný spôsob použitia a každá časť tejto dokumentácie začína práve ním. Každá továreň aj tak prijíma kľúče a nastavenia ako explicitné argumenty; manažér nečíta konfiguráciu ani nedrží tajný kľúč:

```php
use RoundlyConsulting\Crypto\Facades\Crypto;
use RoundlyConsulting\Crypto\Hash\HashAlgorithm;
use RoundlyConsulting\Crypto\Signature\Algorithm;

// Keys: every key family the signers take, loaded, generated or bootstrapped
$rsa    = Crypto::keys()->rsa()->privateFromStorage('local', 'keys/rsa.pem');
$rsaPub = Crypto::keys()->rsa()->publicFromConfig('jwt.public_key');
$ec     = Crypto::keys()->ec()->generate('P-384');
$ed     = Crypto::keys()->ed25519()->public($raw32Bytes);
$secret = Crypto::keys()->hmac()->fromConfig('services.webhook.secret');

// Signers and JOSE
$token  = Crypto::jws()->sign(['kid' => 'k1'], ['sub' => 'alice'], Crypto::rs($rsa));
$claims = Crypto::jws()->verify($token, Crypto::rs($rsaPub), Algorithm::RS256);
$sig    = Crypto::es($ec)->sign($message);               // raw r‖s, as JOSE wants it
$der    = Crypto::ecDer()->fromRaw($sig, 48);             // DER, as OpenSSL wants it
Crypto::verifier()->verify($publicKey, $message, $sig);   // the key picks the algorithm

// Hashing, encryption, OTP, JWK, X.509, COSE
Crypto::hmac(HashAlgorithm::Sha256)->verify($payload, $signature, $webhookKey);
$sealed = Crypto::aes256Gcm()->seal($dataKey, $plaintext, associatedData: 'invoices:42');
Crypto::totp(digits: 8)->verify($otpSecret, $code);
Crypto::jwk($ec)->thumbprint();
Crypto::x509()->fromPem($pem)->fingerprint();
Crypto::x509()->chain()->fromX5c($x5c)->isLinked();      // the math — the trust call stays yours
Crypto::coseKey($coseBytes);                             // COSE_Key bytes -> a public key

// Randomness and codecs return the value directly
$code   = Crypto::random()->numeric(6);
$apiKey = Crypto::random()->token(40);
$b64u   = Crypto::base64UrlEncode($bytes);
```

Metódy kódekov a CSPRNG vracajú vypočítanú hodnotu; všetky ostatné vracajú krátkodobú inštanciu — signer, dekodér, kľúč alebo hodnotový objekt. Jwk, Certificate a Chain sú hodnotové objekty — fasáda ich sprístupňuje pre prehľadnosť, v kontajneri však nie sú registrované ako singletony.

## Vnorené prístupy

Štyri metódy vracajú malú bezstavovú skupinu súvisiacich tovární. Každá metóda skupiny zachováva presné názvy parametrov, typy, predvolené hodnoty a výnimky svojej továrne — túto zhodu v oboch smeroch stráži architektonický test:

| Prístup | Vracia | Metódy |
| --- | --- | --- |
| `keys()` | `Signature\Key\Keys` | `rsa() · ec() · ed25519() · hmac()` — jedna skupina pre každú rodinu kľúčov; pozrite Načítanie a generovanie kľúčov. |
| `random()` | `Random\Csprng` | `bytes() · token() · numeric() · alphanumeric() · fromAlphabet() · secret()` — hodnoty z CSPRNG, vrátené priamo. |
| `x509()` | `X509\Certificates` | `fromPem() · fromDer() · fromBase64() · chain()` — certifikáty z PEM, DER alebo položky x5c. |
| `x509()->chain()` | `X509\Chains` | `fromX5c() · fromPems() · fromPemBundle() · fromCertificates()` — reťazce z x5c, zoznamov PEM, balíkov alebo načítaných certifikátov. |
| `ecDer()` | `Signature\Ec\DerCodec` | `fromRaw() · toRaw() · isValid()` — surové ECDSA r‖s ↔ DER. |

Ploché skratky — certificate(), chainFromX5c(), chainFromPemBundle(), generateHmacSecret() a randomBytes() / randomToken() / randomSecret() — prechádzajú tými istými vnorenými prístupmi, takže oba zápisy spúšťajú rovnaký kód.

Argumenty, ktoré manažér označuje #\[\\SensitiveParameter\] — kľúčový materiál, certifikáty, tajné kľúče OTP, porovnávané hodnoty, vstup kódekov — zostávajú mimo aj vlastného rámca fasády v stack trace, kým neškodné argumenty zostanú viditeľné. Pozrite si časť Tajomstvá mimo stack trace.

## Všetky metódy podľa oblasti

| Oblasť | Metódy |
| --- | --- |
| JOSE / JWK | `jws() · jwk($key) · jwkFromArray($members) · jwkFromJson($json)` |
| Kľúče | `keys()->rsa() / ->ec() / ->ed25519(): public() · private() · generate() · publicFromStorage() · privateFromStorage() · publicFromConfig() · privateFromConfig() · fromStorageOrGenerate(); rsa()->fromModulusExponent() · ec()->fromCoordinates()` |
| Tajné kľúče HMAC | `keys()->hmac(): fromString() · generate() · fromStorage() · fromConfig() · fromStorageOrGenerate(); shortcut generateHmacSecret($bytes = 32)` |
| Signery | `hs($secret, $algorithm) · rs($key, $algorithm) · es($key) · eddsa($key) · verifier()` |
| Kódovanie ECDSA | `ecDer(): fromRaw($rawRS, $coordBytes) · toRaw($der, $coordBytes) · isValid($der)` |
| X.509 | `x509(): fromPem() · fromDer() · fromBase64() · chain() → fromX5c() · fromPems() · fromPemBundle() · fromCertificates(); shortcuts certificate($pem) · chainFromX5c($x5c) · chainFromPemBundle($bundle)` |
| ASN.1 / DER | `derDecoder()` |
| Hašovanie | `hmac($algorithm) · digest($algorithm) · hkdf($algorithm) · constantTimeEquals($known, $user)` |
| Autentifikované šifrovanie | `aes256Gcm(): seal() · open() · encrypt() · decrypt()` |
| COSE / WebAuthn | `cbor() · coseKey($coseBytes) · authenticatorData($bytes)` |
| OTP | `totp($algorithm, $digits, $period) · hotp($algorithm, $digits) · provisioningUri($secret, $label, $issuer, …)` |
| CSPRNG | `random(): bytes() · token() · numeric() · alphanumeric() · fromAlphabet() · secret(); shortcuts randomBytes() · randomToken() · randomSecret()` |
| Kódeky | `base64UrlEncode / base64UrlDecode · base64Encode / base64Decode · base32Encode / base32Decode · hexEncode / hexDecode` |

Chcete rovnaké API bez statických volaní? Pozrite si časť DI a priame triedy.

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/crypto-for-laravel.md)
