Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Ivinco/crypto-ff3-php

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FF3Cipher PHP Library

Overview

FF3Cipher is a PHP implementation of the FPE (Format-Preserving Encryption) algorithm.

Unlike other PHP implementations, this library is capable of working with multibyte character dictionaries.

With the growth of data protection needs and the wide adoption of PHP in web applications, this project aims to bridge the gap, allowing developers to utilize FF3 encryption easily within their PHP applications.

Installation

The recommended way to install FF3Cipher is through Composer:

composer require ivinco/crypto-ff3

Ensure your project's composer.json and the associated lock file are updated.

Usage

Basic Encryption & Decryption

use Ivinco\Crypto\FF3Cipher;

$key = "EF4359D8D580AA4F7F036D6F04FC6A94"; // Your encryption key
$tweak = "D8E7920AFA330A73"; // Your tweak

$cipher = new FF3Cipher($key, $tweak);

$plaintext = "1234567890";
$ciphertext = $cipher->encrypt($plaintext);
echo "Ciphertext: " . $ciphertext . PHP_EOL;

$decrypted = $cipher->decrypt($ciphertext);
echo "Decrypted: " . $decrypted . PHP_EOL;

Using Custom Alphabets

In some scenarios, you might want to work with non-standard characters. This library supports encryption and decryption using custom alphabets:

$alphabet = "abcdefghijklmnopqrstuvwxyz"; // Custom alphabet
$cipher = FF3Cipher::withCustomAlphabet($key, $tweak, $alphabet);

$plaintext = "wfmwlrorcd";
$ciphertext = $cipher->encrypt($plaintext);
echo "Ciphertext: " . $ciphertext . PHP_EOL; // ywowehycyd

$decrypted = $cipher->decrypt($ciphertext); // wfmwlrorcd
echo "Decrypted: " . $decrypted . PHP_EOL;

Tests

The library is accompanied by unit tests.

Install the required packages via Composer:

composer install

Execute PHPUnit:

./vendor/bin/phpunit

Links

For FF3 implementations in other languages, you can refer to:

For more information about FF3, you can refer to:

Releases

Used by

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.