---
title: "Kódeky — Crypto for Laravel | Roundly"
description: "Striktné base64url, base64 s paddingom, base32 a hex — výhradne kanonické dekódovanie, ktoré chybný vstup odmietne, nie pokriví."
url: https://roundly-consulting.com/sk/open-source/navody/crypto-for-laravel/kodeky
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)

# Kódeky

Štyri statické kódeky, každý s encode() a decode(). Kódovanie funguje pre každý vstup; dekódovanie je zámerne striktné a pri chybnom alebo nekanonickom vstupe vyhodí Codec\\InvalidEncodingException, takže podvrhnutá hodnota sa nikdy potichu nedekóduje na iné bajty:

```php
use RoundlyConsulting\Crypto\Facades\Crypto;

$encoded = Crypto::base64UrlEncode($bytes);      // unpadded, URL-safe
$bytes   = Crypto::base64UrlDecode($encoded);    // STRICT — throws InvalidEncodingException

Crypto::base64Encode($bytes);   Crypto::base64Decode($padded);
Crypto::base32Encode($bytes);   Crypto::base32Decode($secret);
Crypto::hexEncode($bytes);      Crypto::hexDecode($hex);
```

Alebo volajte priamo triedy, ktoré fasáda sprístupňuje:

```php
use RoundlyConsulting\Crypto\Codec\Base64Url;
use RoundlyConsulting\Crypto\Codec\Base64;
use RoundlyConsulting\Crypto\Codec\Base32;
use RoundlyConsulting\Crypto\Codec\Hex;

$encoded = Base64Url::encode($bytes);        // unpadded, URL-safe
$bytes   = Base64Url::decode($encoded);      // STRICT: rejects +, /, =, and non-alphabet

$padded  = Base64::encode($bytes);           // standard padded base64 (+/ alphabet, = padding)
$bytes   = Base64::decode($padded);          // STRICT: rejects non-canonical / non-alphabet

$secret  = Base32::encode($randomBytes);     // e.g. "GEZDGNBVGY3TQOJQ"
$bytes   = Base32::decode($secret);          // case-insensitive; canonical, strict

$hex     = Hex::encode($bytes);              // lower-case, e.g. "68656c6c6f"
$bytes   = Hex::decode($hex);                // throws on odd length or any non-hex character
```

| Trieda | Forma | Dekódovanie odmietne |
| --- | --- | --- |
| `Base64Url` | URL-safe abeceda bez paddingu (RFC 4648 §5). | +, /, =, každý bajt mimo abecedy, prázdny vstup a osamotený koncový znak. |
| `Base64` | Štandardná abeceda s paddingom = (RFC 4648 §4). | Bajty mimo abecedy, nesprávny či chýbajúci padding, medzery, nekanonické kódovania a prázdny vstup. |
| `Base32` | A–Z2–7, pri kódovaní bez paddingu (RFC 4648). | Nezáleží na veľkosti písmen, ale odmietne znaky mimo abecedy (aj medzery), = vo vnútri, prebytočné znaky a nenulové koncové bity. |
| `Hex` | Hexadecimálne malými písmenami. | Nepárnu dĺžku a každý nehexadecimálny znak. |

## Spracovanie chybného vstupu

```php
use RoundlyConsulting\Crypto\Codec\InvalidEncodingException;

try {
    $bytes = Base64Url::decode($userInput);
} catch (InvalidEncodingException $e) {
    // reject the tampered / malformed value
}
```

Vstup každého encode() / decode() je #\[\\SensitiveParameter\]: cez kódeky prechádzajú tajné kľúče OTP, bajty tokenov aj kľúče, takže hodnota, ktorú sa nepodarí dekódovať, sa v stack trace výnimky nikdy neobjaví.

Oba base64 kódeky zakódujú '' ako '', no odmietnu ho dekódovať: každé pole, ktoré prenášajú — segment JWS, hlavička podpisu, kľúč — je v platnom stave neprázdne, takže prázdna hodnota znamená chýbajúcu, nikdy nula bajtov. Base32::decode('') vráti '' (prázdny tajný kľúč OTP odmietne o vrstvu vyššie Hotp). Base32 neodstraňuje medzery — ak zdroj pridáva nové riadky, vstup najprv orežte. Base32::ALPHABET je verejná konštanta a každý kódek je dostupný aj cez fasádu Crypto.

## 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)
