Š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| 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 a nekanonické kódovania. |
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
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 kryptomienOdoslaní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.