NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky

Š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:

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:

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
TriedaFormaDekódovanie odmietne
Base64UrlURL-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 a nekanonické kódovania.
Base32A–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.
HexHexadecimálne malými písmenami.Nepárnu dĺžku a každý nehexadecimálny znak.

Spracovanie chybného vstupu

use RoundlyConsulting\Crypto\Codec\InvalidEncodingException;

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

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

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

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.