sivin/crypt

Small library for encryption via phpseclib

v2.1 2021-04-20 08:31 UTC

This package is auto-updated.

Last update: 2024-12-20 16:10:24 UTC


README

Small library for encryption via phpseclib

Build Status License Total Downloads

  1. Install via composer

    composer require sivin/crypt
  2. Register extension in config.neon:

    extensions:
    	crypt: SiViN\Crypt\DI\CryptExtension
  3. Create or use your key/s:

    /** @var Crypt */
    private $crypt;
    
    public function __construct(Crypt $crypt)
    {
    	$this->crypt = $crypt;
    }
    ...
    $keys = $this->crypt->createKeyPair()
    $privateKeyRaw = $keys['privateKeyRaw'];
    $publicKeyRaw = $keys['publicKeyRaw'];
  4. Use your own key or define it in a config.local.neon:

    $crypt->setPublicKey($myPublicKeyForEncrypt);
    $crypt->setPrivateKey($myPrivateKeyForDecrypt);
    //if there is a private key with a password
    $crypt->setPrivateKeyPassword($myPivateKeyPasswordForDecrypt);

    or in a config.local.neon:

    crypt:
    	publicKeyPath: publicKeyFile.pub #for encrypting
    	privateKeyPath: privateKeyFile.key #for decrypting
    	privateKeyPassword: 'PrivateKeyPassword' #optional

    If you only want to encrypt/decrypt, just define the encrypting/decrypting key

  5. And finally?:

    $encryptedStr = $crypt->encryptRijndaelMessage($stringToEncode); //for transport
    $decryptedStr = $crypt->decryptRijndaelMessage($encryptedStr);
    
    $encryptedStr = $crypt->encryptRsa($stringToEncode);
    $decryptedStr = $crypt->decryptRsa($encryptedStr);
    
    $encryptedStr = $crypt->encryptRijndael($stringToEncode);
    $decryptedStr = $crypt->decryptRijndael($encryptedStr);