php-age/README.md

52 lines
1.7 KiB
Markdown

# PHP wrapper for the [age command line encryption tool](https://github.com/FiloSottile/age)
Encrypt and decrypt files with age from PHP. This library is only a wrapper for the the command line tool, it does not implement the C2CP age specification in PHP.
```php
$age = new FileEncryption("hello.txt");
$age->encrypt("hello.txt.age", "hello.txt.age.key");
```
```php
$age = new FileEncryption("hello.txt.age");
$age->decrypt("hello.txt.age.key", "hello-decrypted.txt");
```
## Installation
1. [Install the age command line tool](https://github.com/FiloSottile/age#installation)
2. Install this library with composer
```
composer require victorwesterlund/php-age
```
3. Import and use in your project
## How to use
Import and use the library:
```php
require_once "vendor/autoload.php";
use \Age\FileEncryption;
```
### Encrypt a file
Encrypt a file on disk by passing it to the `FileEncryption` constructor
```php
// Relative or absolute path to a file that should be encrypted
$age = new FileEncryption("hello.txt");
// Encrypted file destination and private key destination
// This method also returns the private key as a string
$age->encrypt("hello.txt.age", "hello.txt.age.key");
```
You can enable optional PEM encoding by chaining `armor()` before `encrypt()`
```php
// Encrypt with PEM encoding
$age->armor()->encrypt("hello.txt.age", "hello.txt.age.key");
```
### Decrypt a file
Decrypt a file on disk by passing it to the `FileEncryption` constructor
```php
// Relative or absolute path to a file that should be decrypted
$age = new FileEncryption("hello.txt.age");
// Private key file and destination of decrypted file
$age->decrypt("hello.txt.age.key", "hello.txt");
```