folded/crypt

Easily encrypt and decrypt strings for your web app.

v0.1.1 2020-10-01 17:53 UTC

This package is auto-updated.

Last update: 2024-12-17 18:06:26 UTC


README

Easily encrypt and decrypt strings for your web app.

Build Status Maintainability TODOs

Summary

About

I created this library to be able to encrypt my data in a standalone way.

Folded is a constellation of packages to help you setting up a web app easily, using ready to plug in packages.

Features

  • Can encrypt and decrypt strings
  • Can generate a key (necessary to setup the library) from the command line

Requirements

  • PHP >= 7.4.0
  • Composer installed

Installation

1. Install the package

In your root folder, run this command:

composer require folded/crypt

2. Generate a key

One way to generate the key easily is through the command line. Run this command to get a new key:

vendor/bin/crypt generate key

You can get more information on the available option by running vendor/bin/crypt generate --help.

Another way is to call the function Folded\getEncryptionKey() from a script:

use function Folded\getEncryptionKey;

require __DIR__ . "/vendor/autoload.php";

echo getEncryptionKey();

You can add a parameter to control the type of cipher you want (currently supported: AES-128-CBC and AES-256-CBC).

3. Add the setup code

Before calling the library, add this setup code as early as possible:

use function Folded\setEncryptionKey;

setEncryptionKey("xIYrZSsCV6hx9x/Q4bka1PejU+aSaMerJQFSYr3QnTE=");

Examples

1. Encrypt a string

In this example, we will get the encrypted version of a string.

use function Folded\getEncryptedString;

$encryptedText = getEncryptedString("hello world");

2. Decrypt a string

In this example, we will decrypt a previously encrypted text.

use function Folded\getDecryptedString;

$encryptedString = "...";
$decryptedString = getDecryptedString($encryptedString);

Note it will only decrypt encrypted string from the getEncryptedString() function.

Also note that if you encrypt a string with a key A, and you change the key A for a new key, the getDecryptedString will not be able to successfuly decrypt the text and get the original text so be careful to save your key in somewhere safe (generally in a .env file).

Version support