joungkyun/mysqlaes

Support AES-256 encrypt and decrypt class APIs

2.0.0 2018-03-02 12:15 UTC

This package is auto-updated.

Last update: 2024-04-25 17:31:50 UTC


README

Abstract

mysqlAES package supports AES 128/192/256 encryptioin, and this API is compatible with lib_mysqludf_aes256 MySQL UDF and mysqlAES javascript API.

Also, this api supports hex and unhex API that is compatble with MySQL and MariaDB.

If encrypt with 128bit, this api is operate in the same way with AES_ENCRYPT and AES_DECRYPT of MySQL or MariaDB.

License

BSD 2-Clause

Installation

mysqlAES 2.x works with PHP 7.1 and later. Use mysqlAES-1 branch or 1.x version for use with PHP 7.0 and before. The mysqlAES-1 branch also supports php 7 and later.

mysqlAES package needs follow external libraries.

  1. php openssl extension

And, you can install in three ways that are download source files by hands or using pear command or use composer. If you choose to install manually, you will also need to install the required external libraries yourself. Therefore, it is recommended to use the pear command to reduce this effort.

* Download source files

  1. download latest version at release page.
  2. uncompress the downloaded package to the desired path.
  3. add the path in the include_path ini option.
  4. include mysqlAES.php file in your code.

* Use pear command

This method is needed root privileges.

[root@host ~]$ pear channel-discover pear.oops.org
[root@host ~]$ pear install oops/mysqlAES
[root@host ~]$ pear list -a

* Use composer

first, make composer.json as follow:

{
    "require": {
        "joungkyun/mysqlaes": "2.*"
    }
}

and, install mysqlAES

[user@host project]$ php composer.phpt install
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 installs, 0 updates, 0 removals
  - Installing joungkyun/mysqlaes (2.0.0): Downloading (100%)
Writing lock file
Generating autoload files
[user@host project]$

and, write code as follow:

<?php
require_once 'vendor/autoload.php';

echo 'mysqlAES is supported ';
if ( class_exists ('oops\Encrypt\mysqlAES') )
    echo 'YES';
else
    echo 'NO';

echo "\n";
?>

APIs

See also mysqlAES reference pages. If you want to mysqlAES-1 reference, see also mysqlAES-1 reference pages.

  • (string|null) oops\Encrypt\mysqlAES::hex(STRING)
  • (string|null) oops\Encrypt\mysqlAES::unhex(STRING)
  • (string|null) oops\Encrypt\mysqlAES::encrypt(STRING, KEY)
  • (string|null) oops\Encrypt\mysqlAES::decrypt(ENCRYPTED_STRING, KEY)

Examples:

<?php
require_once 'mysqlAES.php';

use oops\Encrypt;

$string = "123 abced\n";
$key    = '0123456789012345';
$enc = mysqlAES::hex (mysqlAES::encrypt ($string, $key));
$dec = mysqlAES::decrypt (mysqlAES::unhex ($enc), $key);
?>

Reference

This class is compatible with follow APIs: