PHP Classes

File: README.md

Recommend this page to a friend!
  Classes of Lukas Mestan   Time Lock Crypt   README.md   Download  
File: README.md
Role: Documentation
Content type: text/markdown
Description: Auxiliary data
Class: Time Lock Crypt
Encrypt data using key generated for a time period
Author: By
Last change: update readme
Date: 8 years ago
Size: 1,690 bytes
 

Contents

Class file image Download

Time Lock Encryption Class Build Status Latest Stable Version License

Implementation of timed-release crypto.

This class can encrypt data using key generated for a time period.

It takes an expression that defines a given time period and generates a key by creating iteratively hashes of the initial key in a cycle until the specified time as passed.

The class returns the encrypted data using the Fernet class with the generated key.

It can also decrypt previously encrypted data by regenerating the encryption key the same number of iterations that it were used to generate the key when the data was encrypted.

Requirements

  • PHP 5.3.3 or later
  • hash extension
  • openssl or mcrypt extension

Installation

You can install this library by using [Composer]. You can also view more info about this on [Packagist].

Add this to the require section in your composer.json file.

{
    "require": {
        "arzzen/php-time-lock-encryption": "1.1.*"
    }
}

Usage

<?php
use TimeLockCrypt;

$timeLock = new TimeLockCrypt('keyseed');

$message = 'secret message';
$encrypted = $timeLock->encrypt('+10 second', $message);
$iterations = $timeLock->getIterations();

$decrypted = $timeLock->decrypt($encrypted, $iterations);

var_dump($message == $decrypted);
?>