june/data_security

Encrypt and decrypt data and verify signatures

2.0.0 2024-06-12 09:00 UTC

This package is auto-updated.

Last update: 2024-06-12 09:02:04 UTC


README

Introduce

Encrypt and decrypt data using openssl

Install

composer require june/data_security

Example

  1. symmetry encryption and decryption
use june\DataSecurity\Config;
use june\DataSecurity\Openssl;

$data = "Data that needs to be encrypted";

$config = new Config([
    "key"   => "your key",
    "iv"    => 'iv',
    "aad"   => 'aad'
]);
$openssl = new Openssl($config);
$ciphertext = $openssl->encrypted($data);
echo $ciphertext;

$data = $openssl->decryption($ciphertext);
echo $data;
  1. asymmetry encryption and decryption
use june\DataSecurity\Config;
use june\DataSecurity\Openssl;

$data = "Data that needs to be encrypted";

$config = new Config([
    "privateKey" => "",
    "privateKeyFilePath" => "",
    "publicKey" => "",
    "publicKeyFilePath" => "",
]);
$openssl = new Openssl($config);

// Public key encryption
$ciphertext = $openssl->publicEncrypt($data);
echo $ciphertext;
$data = $openssl->privateDecrypt($ciphertext);
echo $data;

// Private key encryption
$ciphertext = $openssl->privateEncrypt($data);
echo $ciphertext;
$data = $openssl->publicDecrypt($ciphertext);
echo $data;
  1. get signature and verification signature
use june\DataSecurity\Config;
use june\DataSecurity\Signature;

$data = [
    "name" => 'june'
];
$config = new Config([
    "appId"      => "your appId",
    "key"        => "your key"
]);
$signature = new Signature($config);
$sign = $signature->sign($data);
echo $sign;

$result = $signature->validate($sign, $data);
echo $result;

$config = new Config([
    "privateKey" => "",
    "privateKeyFilePath" => "",
    "publicKey" => "",
    "publicKeyFilePath" => "",
]);
$signature = new Signature($config);
$sign = $signature->opensslSign($data);
echo $sign;

$result = $signature->opensslVerify($sign, $data);
echo $result;

Singleton pattern

use june\DataSecurity\Config;
use june\DataSecurity\Signature;
use june\DataSecurity\Openssl;

$ciphertext = Openssl::getInstance($config)->encrypted($data);
Openssl::getInstance($config)->decryption($ciphertext);

$ciphertext = Openssl::getInstance($cofig)->publicEncrypt($data);
Openssl::getInstance($config)->privateDecrypt($ciphertext);

$ciphertext = Openssl::getInstance($cofig)->privateEncrypt($data);
Openssl::getInstance($config)->publicDecrypt($ciphertext);

$sign = Signature::getInstance($config)->sign($data);
Signature::getInstance($config)->validate($sign, $data)

$sign = Signature::getInstance($config)->opensslSign($data);
Signature::getInstance($config)->opensslVerify($sign, $data)