Skip to content

switon-php/crypto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Switon Crypto Package

Encryption, decryption, and key handling utilities for Switon Framework.

Installation

composer require switon/crypto

Requirements: PHP 8.3+, ext-openssl, ext-mbstring

Quick Start

use Switon\Core\Attribute\Autowired;
use Switon\Crypto\CipherInterface;

class UserProfileService
{
    #[Autowired] protected CipherInterface $cipher;

    public function encryptProfile(int $userId, array $profile): string
    {
        return $this->cipher->encrypt(
            json_encode($profile, JSON_THROW_ON_ERROR),
            "user:{$userId}"
        );
    }

    public function decryptProfile(int $userId, string $encrypted): array
    {
        $json = $this->cipher->decrypt($encrypted, "user:{$userId}", 'json');

        return json_decode($json, true, flags: JSON_THROW_ON_ERROR);
    }
}

Docs: https://docs.switon.dev/latest/crypto

License

MIT.

About

Symmetric encryption, derived keys, plaintext validation, and key rotation for Switon Framework

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages