kitlabs/kit-crypt-bundle

Symfony Crypt Bundle

Installs: 2 477

Dependents: 1

Suggesters: 0

Security: 0

Stars: 5

Watchers: 3

Forks: 0

Open Issues: 0

Type:symfony-bundle

v5.3.0 2023-08-11 09:16 UTC

This package is auto-updated.

Last update: 2024-04-11 10:52:54 UTC


README

Symfony Crypt Bundle(use openssl)

Installation

Step 1: Download the Bundle

Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:

$ composer require kitlabs/kit-crypt-bundle

This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.

Step 2: Enable the Bundle

Then, enable the bundle by adding it to the list of registered bundles in the app/AppKernel.php file of your project:

<?php
// app/AppKernel.php
 
// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
 
            new Kit\CryptBundle\KitCryptBundle(),
        );
 
        // ...
    }
 
    // ...
}

Setp 3: config

# app/config/config.yml
kit_crypt:
    clients:
        default:
            method: 'aes-256-cbc'
            secret_key: 'Kit@Crypt!Bundle'
            secret_iv: '12345!@#$%^67890' #16 bit
            option: 0 # 0默认值;OPENSSL_RAW_DATA = 1,采用PKCS7填充;OPENSSL_ZERO_PADDING = 2,采用0填充; OPENSSL_NO_PADDING = 3,不填充
        data_api:# client name,可以是多个
            method: 'des-cbc'
            secret_key: 'Kit@Crypt!Bundle'
            secret_iv: 'q1w2e3r4'
            option: 1

PS:params

  • method list openssl cipher methods
  • secret_iv iv encrypt method AES-256-CBC expects 16 bytes - else you will get a warning

Usage

/**
 * 
 * @var \Kit\CryptBundle\Service\OpensslService $opensslService
 */
$opensslService = $this->get('kit_crypt.openssl');
$encrypt = $opensslService->encrypt('lcp0578', 'data_api'); //public function encrypt($string, $name = 'default', $iv = null)
dump($encrypt);
dump($opensslService->decrypt($encrypt, 'data_api')); //public function decrypt($string, $name = 'default', $iv = null)
function cryptoJsAesDecrypt($passphrase, $ct, $iv, $s)
function cryptoJsAesEncrypt($passphrase, $value)